如何在 Rails 3.2 迁移中强制使用 DROP TABLE CASCADE?
是否有传递给 drop_table("table_name") 的选项?
如何在 Rails 3.2 迁移中强制使用 DROP TABLE CASCADE?
是否有传递给 drop_table("table_name") 的选项?
在 Rails 4 中,您可以执行以下操作:
drop_table :accounts, force: :cascade
您始终可以在迁移中运行原始 SQL。
MYSQL:
execute "DROP TABLE #{:table_name} CASCADE CONSTRAINTS PURGE"
PostgreSQL:
execute "DROP TABLE #{:table_name} CASCADE"
drop_table
您可以在此处查看内置方法的文档。
将一个名为 postgres.rb 的文件放入您的初始化程序目录中,然后执行。无论如何,这适用于rails 4.1。
module ActiveRecord
module ConnectionAdapters # :nodoc:
module SchemaStatements
def drop_table(table_name, options = {})
execute "DROP TABLE #{quote_table_name(table_name)} CASCADE"
end
end
end
end