如何在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
execute "DROP TABLE #{:table_name} CASCADE CONSTRAINTS PURGE"
PostgreSQL:
execute "DROP TABLE #{:table_name} CASCADE"
您可以在此处查看内置方法drop_table
的文档。
在您的initializers目录中放置一个名为postgres.rb的文件,然后进行操作。无论如何,这对于rails4.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