我添加了一个我认为我将需要的表格,但现在不再计划使用它。我该如何移除那张桌子?
我已经运行了迁移,所以这个表在我的数据库中。我认为rails生成迁移应该能够处理这个问题,但我还没有弄清楚如何处理。
我试过了:
rails generate migration drop_tablename
但这只是产生了一个空迁移。
在Rails中删除表的“官方”方式是什么?
我添加了一个我认为我将需要的表格,但现在不再计划使用它。我该如何移除那张桌子?
我已经运行了迁移,所以这个表在我的数据库中。我认为rails生成迁移应该能够处理这个问题,但我还没有弄清楚如何处理。
我试过了:
rails generate migration drop_tablename
但这只是产生了一个空迁移。
在Rails中删除表的“官方”方式是什么?
当前回答
你不能简单地运行drop_table:table_name,相反,你可以通过运行以下命令创建一个空迁移: rails迁移drop安装
然后你可以把这个添加到空迁移中:
class DropInstalls < ActiveRecord::Migration
def change
drop_table :installs
end
end
然后在命令行中运行rails db:migrate,这将删除安装表 在这里找到了解决方案
其他回答
替代引发异常或试图重新创建一个现在空的表-同时仍然启用迁移回滚,重做等-
def change
drop_table(:users, force: true) if ActiveRecord::Base.connection.tables.include?('users')
end
Run
rake db:migrate:down VERSION=<version>
其中<version>是您想要恢复的迁移文件的版本号。
例子:-
rake db:migrate:down VERSION=3846656238
你不能简单地运行drop_table:table_name,相反,你可以通过运行以下命令创建一个空迁移: rails迁移drop安装
然后你可以把这个添加到空迁移中:
class DropInstalls < ActiveRecord::Migration
def change
drop_table :installs
end
end
然后在命令行中运行rails db:migrate,这将删除安装表 在这里找到了解决方案
简单而正式的方式是这样的:
rails g migration drop_tablename
现在转到您的db/migrate,并寻找包含drop_tablename作为文件名的文件,并将其编辑为此。
def change
drop_table :table_name
end
那你就得跑
rake db:migrate
在你的控制台。
删除表/迁移
运行: $ rails生成迁移DropTablename
$ rails生成迁移DropProducts