[Rails] Active Storage 테이블 삭제

며칠 전 레일스에 이미지 투고 기능을 설치해 캐리어웨이브를 사용했다.
하지만 제 경우는 캐리어웨이브를 가져오기 전에 액티브 스토어의 이미지 투고 기능을 설치한 후 캐리어웨이브 형식으로 갈아타는 경우입니다.
필요 없는 Active Storage 테이블이 삭제되었습니다.
나는 아래의 문장을 참고하여 삭제 작업을 진행하였다.
Active Storage에서 Carrier Wave로 이미지 관리 변환
이 글에서는 액티브 스토어용으로 생성된 테이블을 삭제하기 위해 마이그레이션 파일로 다음 코드를 소개했다.
2022XXXXXXXXXX_destroy_active_storage_tables.rb
class DestroyActiveStorageTables < ActiveRecord::Migration
  drop_table :active_storage_blobs
  drop_table :active_storage_attachments
end
또한 마이그레이션 파일을 편집하고 마이그레이션 명령을 실행했습니다.
그런데 여기 오류가 생겼어요.
ERROR: cannot drop table active_storage_blobs because other objects depend on it↑"active_storage_blobs 표가 다른 대상에 의존하기 때문에 삭제할 수 없다"며 혼났다.dbconsole로 의존이 무엇인지 확인하세요.

Active Storage 설정 시 생성되는 테이블은 3가지입니다.
  • active_storage_attachments
  • active_storage_blobs
  • active_storage_variant_records
  • 이상 3개죠?active_storage_blobs 외부 버튼 2개 추가 제한이 설정됐죠.
    여기서 지정active_storage_blobs하기 전에 삭제active_storage_attachmentsactive_storage_variant_records하면 순조롭게 진행될 것으로 보인다.
    따라서 수정된 이전 파일은 여기에 있습니다.
    2022XXXXXXXXXX_destroy_active_storage_tables.rb
    class DestroyActiveStorageTables < ActiveRecord::Migration[6.1]
      def change
        drop_table :active_storage_attachments
        drop_table :active_storage_variant_records
        drop_table :active_storage_blobs
      end
    end
    
    active_storage_blobs 수정이 마지막으로 삭제되었습니다.
    이쪽으로 코드를 수정한 후 이동을 실행합니다.액티브 스토어 테이블을 무사히 제거했다.
    그나저나 active_storage_variant_records는 어떤 테이블일까요? 투고 이미지(오리지널)의 가공판본(조정된 다른 이미지)을 저장하기 위한 테이블입니다.
    Active Storage의 개요-rails 가이드

    좋은 웹페이지 즐겨찾기