Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Migration, um den Standardwert für ein Feld zu ändern und den Wert aller vorhandenen Datensätze nur dann auf den neuen Standardwert zu ändern, wenn er einen alten Standardwert hat.

Bei der Migration sollten Sie die Methode change_column verwenden, um die Tabelleneinstellungen wie folgt zu ändern:

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

Um dann alle vorhandenen Datensätze zu aktualisieren, anstatt alle Datensätze zu durchlaufen und einzeln zu aktualisieren, können Sie die Methode update_all wie folgt verwenden:

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

Das erste Argument teilt der Methode mit, welcher Wert gesetzt werden soll, und das zweite die Bedingung, unter der die Zeilen aktualisiert werden sollen.