Làm cách nào để buộc một DROP TABLE CASCADE trong quá trình di chuyển Rails 3.2?Đường ray: Tạo di chuyển xếp bảng thả xuống
Có tùy chọn để chuyển tới drop_table ("table_name") không?
Làm cách nào để buộc một DROP TABLE CASCADE trong quá trình di chuyển Rails 3.2?Đường ray: Tạo di chuyển xếp bảng thả xuống
Có tùy chọn để chuyển tới drop_table ("table_name") không?
Bạn luôn có thể chạy SQL thô trong quá trình di chuyển.
MYSQL:
execute "DROP TABLE #{:table_name} CASCADE CONSTRAINTS PURGE"
PostgreSQL:
execute "DROP TABLE #{:table_name} CASCADE"
Đặt một tập tin trong initializers của bạn thư mục gọi là postgres.rb sau đó đã làm. Điều này làm việc cho ray 4.1 anyway.
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
Trong Rails 4 bạn có thể làm như sau:
drop_table :accounts, force: :cascade
đó làm việc cho MySQL, nhưng cú pháp là hơi khác nhau cho PostgreSQL: thực hiện "DROP TABLE # {: tên_bảng} CASCADE" – l3x