2013-06-04 10 views

risposta

7

È possibile eseguire sempre SQL raw durante la migrazione.

MYSQL:

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

PostgreSQL:

execute "DROP TABLE #{:table_name} CASCADE" 
+0

che funziona per MySQL, ma la sintassi è leggermente diversa per PostgreSQL: eseguire "DROP TABLE # {: table_name} CASCADE" – l3x

2

mettere un file nella vostra directory chiamata inizializzatori postgres.rb poi ha fatto. Questo funziona comunque per i binari 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 
29

In Rails 4 è possibile effettuare le seguenti operazioni:

drop_table :accounts, force: :cascade 
Problemi correlati