Wie erzwinge ich eine DROP TABLE CASCADE in einer Rails 3.2-Migration?Rails: Erstellen Sie eine Drop-Tabelle-Kaskadenmigration
Gibt es eine Option, die an drop_table ("table_name") übergeben wird?
Wie erzwinge ich eine DROP TABLE CASCADE in einer Rails 3.2-Migration?Rails: Erstellen Sie eine Drop-Tabelle-Kaskadenmigration
Gibt es eine Option, die an drop_table ("table_name") übergeben wird?
Sie könnten in der Migration immer Raw SQL ausführen.
MYSQL:
execute "DROP TABLE #{:table_name} CASCADE CONSTRAINTS PURGE"
PostgreSQL:
execute "DROP TABLE #{:table_name} CASCADE"
Legen Sie eine Datei in Ihrem initializers Verzeichnis namens postgres.rb damals. Dies funktioniert sowieso für Schienen 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
In Schienen 4 Sie tun können, die folgenden:
drop_table :accounts, force: :cascade
Das ist für MySQL funktioniert, aber die Syntax ist etwas anders für PostgreSQL: execute "DROP TABLE # {: table_name} CASCADE" – l3x