如何在Rails 3.2迁移中强制使用DROP TABLE CASCADE?
是否可以选择传递给drop_table(“table_name”)?
答案 0 :(得分:38)
在Rails 4中,您可以执行以下操作:
drop_table :accounts, force: :cascade
答案 1 :(得分:8)
您始终可以在迁移中运行原始SQL。
MYSQL:
execute "DROP TABLE #{:table_name} CASCADE CONSTRAINTS PURGE"
的PostgreSQL:
execute "DROP TABLE #{:table_name} CASCADE"
答案 2 :(得分:2)
将一个文件放在名为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