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 を実行できます。
マイSQL:
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