2013-06-04 45 views

Trả lời

7

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" 
+0

đó 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

2

Đặ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 
29

Trong Rails 4 bạn có thể làm như sau:

drop_table :accounts, force: :cascade 
Các vấn đề liên quan