Programing

레일에서 모델 제거 (“레일 g 모델 제목…”의 반대)

crosscheck 2020. 7. 30. 09:51
반응형

레일에서 모델 제거 (“레일 g 모델 제목…”의 반대)


rails g model Rating user_id:integer message:string value:integer

이 모델을 어떻게 완전히 제거 할 수 있습니까? 감사


bundle exec rake db:rollback    
rails destroy model <model_name>

모델을 생성하면 데이터베이스 마이그레이션이 생성됩니다. 해당 모델에서 'destroy'를 실행하면 데이터베이스 테이블이 아닌 마이그레이션 파일이 삭제됩니다. 따라서 실행하기 전에

bundle exec rake db:rollback

이 시도

rails destroy model Rating

모델, 마이그레이션, 테스트 및 비품을 제거합니다.


향후 질문자 : 콘솔에서 테이블을 삭제할 수없는 경우 테이블을 삭제하는 마이그레이션을 작성하십시오. 마이그레이션을 작성한 다음 파일 노트 테이블에서 다음과 같이 삭제해야합니다.

class DropTables < ActiveRecord::Migration
  def up
    drop_table :table_you_dont_want
  end

  def down
    raise ActiveRecord::IrreversibleMigration
  end
end

  1. 마이그레이션을 제거하려면 (이미 마이그레이션을 이미 수행 한 경우)

    rake db:migrate:down VERSION="20130417185845" #Your migration version
    
  2. 모델을 제거하려면

    rails d model name  #name => Your model name
    

다음은 Rails 5에서 작동하는 Jenny Lang의 답변에 대한 다른 구현입니다.

먼저 마이그레이션 파일을 작성하십시오.

bundle exec be rails g migration DropEpisodes

그런 다음 다음과 같이 마이그레이션 파일을 채우십시오.

class DropEpisodes < ActiveRecord::Migration[5.1]
  def change
    drop_table :episodes
  end
end

실행 rails db:migrate하면 테이블이 삭제됩니다. 를 실행 rails db:rollback하면 Rails에서 ActiveRecord::IrreversibleMigration오류가 발생합니다.

참고 URL : https://stackoverflow.com/questions/7105373/removing-a-model-in-rails-reverse-of-rails-g-model-title

반응형