Rails:创建一个drop table级联迁移

如何在Rails 3.2迁移中强制DROP TABLE CASCADE?

是否有传递给drop_table(“table_name”)的选项?

您始终可以在迁移中运行原始SQL。

MYSQL:

execute "DROP TABLE #{:table_name} CASCADE CONSTRAINTS PURGE" 

PostgreSQL的:

 execute "DROP TABLE #{:table_name} CASCADE" 

在Rails 4中,您可以执行以下操作:

 drop_table :accounts, force: :cascade 

将一个文件放在名为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