Migración de DATOS, no solo esquemas, Rails
Algunas veces,datos Se requieren migraciones. A medida que pasa el tiempo, los cambios de código y las migraciones que usan su modelo de dominio ya no son válidos y las migraciones fallan. ¿Cuáles son las mejores prácticas para migrar datos?
Intenté hacer un ejemplo para aclarar el problema:
Considera esto. Tienes una migracion
class ChangeFromPartnerAppliedToAppliedAt < ActiveRecord::Migration
def up
User.all.each do |user|
user.applied_at = user.partner_application_at
user.save
end
end
Esto funciona perfectamente bien, por supuesto. Más tarde, necesitas un cambio de esquema
class AddAcceptanceConfirmedAt < ActiveRecord::Migration
def change
add_column :users, :acceptance_confirmed_at, :datetime
end
end
class User < ActiveRecord::Base
before_save :do_something_with_acceptance_confirmed_at
end
Para ti, no hay problema. Funciona perfectamente. Pero si tu compañero de trabajo tira de estos dos hoy,Aún no se ha ejecutado la primera migración., obtendrá este error al ejecutar la primera migración:
rake aborted!
An error has occurred, this and all later migrations canceled:
undefined method `acceptance_confirmed_at=' for #<User:0x007f85902346d8>
Eso no es ser un jugador de equipo, él arreglará el error que introdujiste. ¿Qué deberías haber hecho?