我添加了一个我认为我将需要的表格,但现在不再计划使用它。我该如何移除那张桌子?
我已经运行了迁移,所以这个表在我的数据库中。我认为rails生成迁移应该能够处理这个问题,但我还没有弄清楚如何处理。
我试过了:
rails generate migration drop_tablename
但这只是产生了一个空迁移。
在Rails中删除表的“官方”方式是什么?
我添加了一个我认为我将需要的表格,但现在不再计划使用它。我该如何移除那张桌子?
我已经运行了迁移,所以这个表在我的数据库中。我认为rails生成迁移应该能够处理这个问题,但我还没有弄清楚如何处理。
我试过了:
rails generate migration drop_tablename
但这只是产生了一个空迁移。
在Rails中删除表的“官方”方式是什么?
当前回答
您并不总是能够简单地生成迁移来拥有您想要的代码。您可以创建一个空迁移,然后用您需要的代码填充它。
你可以在这里找到关于如何在迁移中完成不同任务的信息:
http://api.rubyonrails.org/classes/ActiveRecord/Migration.html
更具体地说,你可以看到如何使用以下方法删除一个表:
drop_table :table_name
其他回答
您并不总是能够简单地生成迁移来拥有您想要的代码。您可以创建一个空迁移,然后用您需要的代码填充它。
你可以在这里找到关于如何在迁移中完成不同任务的信息:
http://api.rubyonrails.org/classes/ActiveRecord/Migration.html
更具体地说,你可以看到如何使用以下方法删除一个表:
drop_table :table_name
如果有人在寻找如何在SQL中做到这一点。
从终端输入rails dbconsole
输入密码
在控制台做
使用db_name;
DROP TABLE table_name;
exit
请不要忘记从模式中删除迁移文件和表结构
简单而正式的方式是这样的:
rails g migration drop_tablename
现在转到您的db/migrate,并寻找包含drop_tablename作为文件名的文件,并将其编辑为此。
def change
drop_table :table_name
end
那你就得跑
rake db:migrate
在你的控制台。
ActiveRecord:: Base.connection。drop_table: table_name
Rails迁移drop_users 编辑迁移
class DropUsers < ActiveRecord::Migration
def change
drop_table :users do |t|
t.string :name
t.timestamps
end
end
end
rake db: migrate