Mysql
 sql >> Database >  >> RDS >> Mysql

Migrazione per modificare il valore predefinito per un campo e modificare il valore di tutti i record esistenti sul nuovo valore predefinito solo se ha il vecchio valore predefinito.

Nella migrazione dovresti usare il metodo change_column per modificare le impostazioni della tabella in questo modo:

change_column :my_models, :attribute_name, :integer, :default => 3

E poi per aggiornare tutti i record esistenti, invece di scorrere tutti i record e aggiornarli singolarmente potresti usare il metodo update_all in questo modo:

MyModel.update_all({ :attribute_name => 3 }, { :attribute_name => 0 })

Il primo argomento indica al metodo quale valore impostare e il secondo indica la condizione per quali righe aggiornare.