Rails 3.2移行でDROP TABLE CASCADEを強制的に実行するにはどうすればよいですか?Rails:ドロップテーブルカスケード移行の作成
drop_table( "table_name")に渡すオプションはありますか?
Rails 3.2移行でDROP TABLE CASCADEを強制的に実行するにはどうすればよいですか?Rails:ドロップテーブルカスケード移行の作成
drop_table( "table_name")に渡すオプションはありますか?
移行では、いつでも未加工SQLを実行できます。
MYSQL:
execute "DROP TABLE #{:table_name} CASCADE CONSTRAINTS PURGE"
は、PostgreSQL:
execute "DROP TABLE #{:table_name} CASCADE"
postgres.rbと呼ばれるあなたの初期化子のディレクトリにファイルを置くが、その後でした。とにかくこれはレール4.1で動作します。
次の操作を行うことができますRailsの4では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
:
drop_table :accounts, force: :cascade
MySQLのために動作しますが、構文はPostgreSQLの若干異なります。実行の "DROP TABLEの#{:} TABLE_NAME CASCADE" – l3x