21

Rails 3.2 移行で DROP TABLE CASCADE を強制するにはどうすればよいですか?

drop_table("table_name") に渡すオプションはありますか?

4

3 に答える 3

54

Rails 4 では、次のことができます。

drop_table :accounts, force: :cascade
于 2015-01-24T01:57:58.030 に答える
10

移行では常に生の SQL を実行できます。

マイSQL:

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

PostgreSQL:

execute "DROP TABLE #{:table_name} CASCADE"

組み込みメソッドのドキュメントは、drop_table こちらで確認できます。

于 2013-06-04T22:54:06.823 に答える
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
于 2014-06-10T21:35:29.140 に答える