Cómo limpiar archivos de migración antiguos en Rails

A medida que tu aplicación Rails crece, también lo hace tu carpeta db/migrate. Después de años de desarrollo, podrías tener cientos de archivos de migración que ya no son relevantes.

El Problema

Las migraciones antiguas pueden causar problemas:

  • Ralentizan rails db:migrate en configuraciones nuevas
  • Confunden a los nuevos desarrolladores
  • Pueden hacer referencia a modelos o columnas que ya no existen

La Solución

Rails proporciona una forma de consolidar migraciones:

  1. Asegúrate de que tu schema esté actualizado
rails db:migrate
  1. Verifica que tu schema.rb o structure.sql sea correcto

Comprueba que db/schema.rb represente con precisión tu base de datos actual.

  1. Elimina los archivos de migración antiguos

Puedes eliminar de forma segura las migraciones que se han ejecutado en todos los entornos:

rm db/migrate/2020*.rb
rm db/migrate/2021*.rb
  1. Actualiza la versión del schema

Si es necesario, actualiza la versión del schema en tu schema.rb.

Mejores Prácticas

  • Solo elimina migraciones más antiguas que tu backup de producción más antiguo
  • Asegúrate de que todos los entornos hayan ejecutado las migraciones
  • Considera crear una migración “consolidada” para documentación

Esto mantiene tu base de código limpia mientras conservas un historial claro de la base de datos.