Rails: создать каскадную миграцию таблицы drop table

Как заставить TAB CASCADE DROP TABLE в миграции Rails 3.2?

Есть ли возможность перейти к drop_table ( "table_name" )?

Ответ 1

Вы всегда можете запустить raw SQL в процессе миграции.

MYSQL:

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

PostgreSQL:

execute "DROP TABLE #{:table_name} CASCADE"

Ответ 2

В Rails 4 вы можете сделать следующее:

drop_table :accounts, force: :cascade

Ответ 3

Поместите файл в каталог инициализаторов, который называется postgres.rb, затем сделал. Это все равно работает для рельсов 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