Mysql
 sql >> Base de données >  >> RDS >> Mysql

Migration pour modifier la valeur par défaut d'un champ et modifier la valeur de tous les enregistrements existants en une nouvelle valeur par défaut uniquement s'il a l'ancienne valeur par défaut.

Lors de la migration, vous devez utiliser la méthode change_column pour modifier les paramètres de la table comme ceci :

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

Et ensuite, pour mettre à jour tous les enregistrements existants, au lieu de parcourir tous les enregistrements et de les mettre à jour individuellement, vous pouvez utiliser la méthode update_all comme ceci :

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

Le premier argument indique à la méthode quelle valeur définir et le second lui indique la condition pour quelles lignes mettre à jour.