Answers:
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
这是詹妮·朗(Jenny Lang)回答的另一种实现,适用于Rails 5。
首先创建迁移文件:
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
错误。