Tengo una tabla en una aplicación de Rails con cientos de miles de registros, y solo tienen una marca de tiempo created_at
. Estoy agregando la capacidad de editar estos registros, por lo que quiero agregar una marca de tiempo updated_at
a la tabla. En mi migración para agregar la columna, deseo actualizar todas las filas para que el nuevo updated_at
coincida con el anterior created_at
, ya que es el predeterminado para las filas recién creadas en Rails. Podría hacer un find(:all)
e iterar a través de los registros, pero eso tomaría horas debido al tamaño de la tabla. Lo que realmente quiero hacer es:Actualizar una columna al valor de otra en la migración de Rails
UPDATE table_name SET updated_at = created_at;
¿Existe una manera más agradable de hacer eso en una migración rieles usando ActiveRecord en lugar de ejecutar SQL crudo?
+1 - Hace poco tuve que hacer exactamente esto y utilicé SQL sobre ActiveRecord. Es lo más rápido que puede llegar. –
'Yourmodel.update_all 'update_at = created_at'' es más bonito, ¿no? Funciona en un alcance también. –