Pregunta

Así que he estado trabajando en esta aplicación web durante un año y me gustaría compilar para esquema en una migración, de esa manera mi editor de texto se carga más rápido, el directorio de trabajo de GIT no está tan desordenado.

Buscar el hallazgo será más rápido.

Cualquiera de mi config/db no tendrá 4000 px de largo.

¿Fue útil?

Solución

Un camino a seguir es tomar una base de datos en blanco y ejecutar todas las migraciones. Ahora tiene todos los datos de plantilla que puede guardar en un YAML. El YAML más el esquema debe ser suficiente para devolver el DB sin ejecutar ninguna de sus migraciones existentes anteriormente.

Sin embargo, otras respuestas deben mencionar una herramienta o gema existente para hacer esto.

Otros consejos

Elimine los archivos de migración una vez que haya migrado sus servidores. Si alguna vez desea comenzar con una nueva implementación, ejecute rake db:schema:load o rake db:setup. No deberías volver a ejecutar todas tus migraciones como se explica aquí.

No necesita mantener sus migraciones para siempre, es libre de eliminarlas tan pronto como esté seguro de que ya no las necesita. Solo entra en tu db/migrate/ Directorio y elimine las migraciones que son más antiguas que, por ejemplo, un par de meses.

Mientras todas las migraciones que desee eliminar se hayan aplicado en todas partes (es decir, desarrollo y producción), entonces ya no las necesita (a menos que desee retroceder). Realmente, las migraciones no están destinadas a ser archivos permanentes, son solo para llevarlo de A a B y luego son solo equipaje.

Dado que ninguna de las respuestas lo menciona, esta es la joya que hace el trabajo: https://github.com/jalkoby/squasher

Básicamente vuelve a ejecutar las migraciones desde cero hasta la fecha que especifica, y luego carga el resultado db/schema.rb en una migración inicial que reemplaza a las viejas. También puede limpiar el schema_migrations mesa para que no obtengas esos

up     <timestamp>  ********** NO FILE **********

Entradas al correr rake db:migrate:status.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top