답변:
bundle exec rake db:rollback
rails destroy model <model_name>
모델을 생성하면 데이터베이스 마이그레이션이 생성됩니다. 해당 모델에서 'destroy'를 실행하면 마이그레이션 파일이 삭제되지만 데이터베이스 테이블은 삭제되지 않습니다. 그래서 실행하기 전에
bundle exec rake db:rollback
bundle exec rake db:drop db:create db:migrate
. 비어있는 새 데이터베이스가됩니다.
향후 질문자 : 콘솔에서 테이블을 삭제할 수없는 경우 테이블을 삭제하는 마이그레이션을 만들어보십시오. 마이그레이션을 만든 다음 다음과 같이 삭제할 파일 메모 테이블에 있어야합니다.
class DropTables < ActiveRecord::Migration
def up
drop_table :table_you_dont_want
end
def down
raise ActiveRecord::IrreversibleMigration
end
end
다음은 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
오류가 발생합니다.