Je suis en train d'exécuter la migration suivantequestion Authlogic seulement dans la migration dans des rails 3 projets
def self.up
add_column :users, :perishable_token, :string
User.all.each { |u| u.reset_perishable_token! }
change_column :users, :perishable_token, :string, :null => false
add_index :users, :perishable_token
end
et le code u.reset_perishable_token!
comporte de manière étrange (pas de valeur de retour, ne change pas le champ de base de données). Par conséquent change_column ..., :null => false
échoue avec
users.perishable_token may not be NULL
séparant Même la migration en deux ne fait pas l'affaire soit si je les exécute avec une seule commande de râteau.
Première partie
def self.up
add_column :users, :perishable_token, :string
add_index :users, :perishable_token
end
Deuxième partie
def self.up
User.all.each { |u| u.reset_perishable_token! }
change_column :users, :perishable_token, :string, :null => false
end
Seulement si je lance la première et la deuxième migration de rake processus séparés tout fonctionne bien.
Quelle pourrait être la raison et comment puis-je le réparer?