2016-04-20 21 views
8

È semplice ignorare le tabelle quando il formato dello schema è :ruby, ma esiste un modo per farlo quando il formato dello schema è :sql?Rails: mantenere una tabella out di structure.sql durante le migrazioni

Idealmente qualcosa di simile in environment.rb:

ActiveRecord::SQLDumper.ignore_tables = ['table_name'] 

Dopo una rapida lettura attraverso il codice sorgente di AR sembra poco promettente.

risposta

5

non esiste attualmente alcun modo per farlo, quando il formato dello schema è impostato su :sql, Rails non passare attraverso il normale SchemaDumper ma utilizza i compiti in ActiveRecord::Tasks::PostgreSQLDatabaseTasks per fare la discarica, check it out here.

Il codice è abbastanza semplice. Ho trovato una semplice patch per ActiveRecord che dovrebbe funzionare come previsto. Si basa sull'impostazione delle tabelle da ignorare nel file database.yml. Si aggiunge fondamentalmente il seguente codice:

ignore_tables = configuration['ignore_tables'] 
unless ignore_tables.blank? 
    args += ignore_tables.split(',').map do |table| 
    "-T #{table}" 
    end 
end 

ho appena presentato a pull request to rails con questi cambiamenti. Nel caso tu voglia testarlo.

Problemi correlati