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