我添加了一个我认为我将需要的表格,但现在不再计划使用它。我该如何移除那张桌子?
我已经运行了迁移,所以这个表在我的数据库中。我认为rails生成迁移应该能够处理这个问题,但我还没有弄清楚如何处理。
我试过了:
rails generate migration drop_tablename
但这只是产生了一个空迁移。
在Rails中删除表的“官方”方式是什么?
我添加了一个我认为我将需要的表格,但现在不再计划使用它。我该如何移除那张桌子?
我已经运行了迁移,所以这个表在我的数据库中。我认为rails生成迁移应该能够处理这个问题,但我还没有弄清楚如何处理。
我试过了:
rails generate migration drop_tablename
但这只是产生了一个空迁移。
在Rails中删除表的“官方”方式是什么?
当前回答
我不能让它与迁移脚本一起工作,所以我继续使用这个解决方案。使用终端进入rails控制台:
rails c
Type
ActiveRecord::Migration.drop_table(:tablename)
这对我来说很有效。这将删除前一个表。别忘了跑步
rails db:migrate
其他回答
我不能让它与迁移脚本一起工作,所以我继续使用这个解决方案。使用终端进入rails控制台:
rails c
Type
ActiveRecord::Migration.drop_table(:tablename)
这对我来说很有效。这将删除前一个表。别忘了跑步
rails db:migrate
您需要使用以下命令创建一个新的迁移文件
rails generate migration drop_table_xyz
并在新生成的迁移文件(db/migration/xxxxxxx_drop_table_xyz)中编写drop_table代码
drop_table :tablename
或者如果你想在不迁移的情况下删除表,只需打开rails控制台by
$ rails c
并执行以下命令
ActiveRecord::Base.connection.execute("drop table table_name")
或者你可以使用更简单的命令
ActiveRecord::Migration.drop_table(:table_name)
如果您想删除一个特定的表,您可以这样做
$ rails db:migrate:up VERSION=[Here you can insert timestamp of table]
否则,如果您想删除所有数据库,您可以这样做
$rails db:drop
您并不总是能够简单地生成迁移来拥有您想要的代码。您可以创建一个空迁移,然后用您需要的代码填充它。
你可以在这里找到关于如何在迁移中完成不同任务的信息:
http://api.rubyonrails.org/classes/ActiveRecord/Migration.html
更具体地说,你可以看到如何使用以下方法删除一个表:
drop_table :table_name
你能做的最好的办法就是
rails g migration Drop_table_Users
然后执行以下操作
rake db:migrate