2011-06-07 8 views
11

Estoy trabajando en la implementación de mi primera aplicación Rails en este momento, y en algún momento, fallé una migración. Cuando intento enviar mi aplicación al servidor de producción y ejecutar rake db:migrate, falla en algún lugar con un error.Forma de "aplanar" ¿Migraciones de carriles?

Ahora, estoy manera demasiado flojo para trabajar a través de mis migraciones individualmente para descubrir qué salió mal, así que estoy tratando de evitar hacer eso. Dado que mi base de datos de desarrollo actual funciona bien, ¿hay alguna forma de "aplanar" el esquema actual en una sola migración integral?

Entiendo que esto es descuidado, y entiendo que probablemente hice algo tonto para romper la cadena de migración en primer lugar. (Probablemente edité el esquema de la base de datos directamente en algún lado, lo que ahora entiendo es un no-no). Sin embargo, este es un proyecto bastante pequeño, y esencialmente soy el único desarrollador involucrado, así que me siento cómodo al tratar este tema bajo la alfombra si es posible.

¿Hay alguna manera de hacerlo?

Gracias por prestar su experiencia.

Respuesta

13

Esto es para lo que es el archivo db/schema.rb. Si solo tiene cambios estructurales en sus migraciones, podrá ejecutar rake db:schema:load en lugar de ejecutar rake db:migrate para obtener la estructura absoluta de sus tablas.

+0

Podría necesitar hacer un rake db: schema: dump antes de eso si ha cambiado el db mientras tanto. –

+0

Trabajó como un campeón. ¡Gracias! –

2

Si modificó el esquema directamente tendrá que ejecutar:

rake db:schema:dump 

Esto tomará lo que está en la base de datos y crear un archivo schema.rb. Luego puede ejecutar rake db: schema: cargar en cualquier momento que desee. Sin embargo, significará que sus migraciones siguen siendo malas. Puede eliminarlos todos y volver a crearlos desde el archivo schema.rb.

+0

Gracias Kyle! Sí, acabo de eliminar las viejas migraciones y ahora estoy en el negocio. –

Cuestiones relacionadas