J'ai un modèle (Model_A) avec deux colonnes (column_a et Column_B)Comment faire des migrations de rails sur des enregistrements existants (données historiques)?
Mon modèle a la méthode suivante en elle, deux générer de la valeur de column_B basée sur column_a
Class Model_A < ActiveRecord::Base
before_save :set_column_B
def set_column_B
self.column_B = get_value_from_column_A
end
def get_value_from_column_A
# manipulate data from A to get value
column_A.join(,)
end
end
Je sais que je dois Créez une nouvelle colonne_B comme première étape de la migration. Cependant, comment puis-je modifier tous les enregistrements préexistants dans la base de données pour avoir la valeur correcte dans column_B? Dois-je écrire un script ou une tâche Rake ou y a-t-il un moyen de le faire via les migrations?
Vous voudrez peut-être changer à 'ModelA.all.find_each {| x | x.save! } ' –
oh oui, ce serait plus efficace. – Ucpuzz