La solution dépend d'un certain nombre de choses.
Est la valeur par défaut dépend de l'information disponible au moment de la création?
Pouvez-vous essuyez la base de données avec un minimum de conséquences?
Si vous avez répondu à la première question est oui, alors vous voulez utiliser Jim solution
Si vous avez répondu à la deuxième question est oui, alors vous voulez utiliser de Daniel solution
Si vous avez répondu non aux deux questions, vous êtes probablement mieux de l'ajout et de l'exécution d'une nouvelle migration.
class AddDefaultMigration < ActiveRecord::Migration
def self.up
change_column :tasks, :status, :string, :default => default_value, :null => false
end
end
:chaîne de caractères peut être remplacé par n'importe quel type de ActiveRecord::Migration reconnaît.
L'UC est pas cher, donc la redéfinition de la Tâche dans de Jim solution ne va pas causer de nombreux problèmes. En particulier dans un environnement de production. Cette migration est la façon correcte de le faire, puisqu'il est chargé et l'a appelé beaucoup moins souvent.