2012-01-13 10 views
55

¿Hay alguna forma de recuperar el número de versión de migración?Migración de rieles: la mejor forma de recuperar la versión de migración actual

Necesito implementar un método en un modelo que se comporta de manera diferente en una versión de migración específica y más allá de ella.

Encontré assume_migrated_upto_version en el adaptador de conexión está recuperando la versión de la base de datos pero no puede encontrar otras.


Antecedentes: Estoy intentando retirar dos columnas de la Tabla A, quieren moverlas a la tabla B, y añadir a la asociación de la tabla B de la tabla A.

Durante este cambio, Necesito acceder a estas dos columnas. pero después de eso, quiero agregar el método proxy para estas columnas para compatibilidad.

+0

¿Por qué tienes código que se comporta de manera diferente w.r.t versiones de migración. Por favor, cuídate de explicarme. –

+0

Derecha. Agregué antecedentes en la pregunta. – shigeya

Respuesta

77
> ActiveRecord::Migrator.current_version 
    (0.2ms) SELECT "schema_migrations"."version" FROM "schema_migrations" 
=> 20120110085802 

> ActiveRecord::Migrator.get_all_versions 
    (0.3ms) SELECT "schema_migrations"."version" FROM "schema_migrations" 
=> [20111114121610, 
    20111115091108, 
    ... 
+1

¡Muchas gracias! – shigeya

117

Hay una manera mucho más agradable: rake db:migrate:status

up  20120530222941 Create shenanigans 
up  20120613030015 *** NO FILE *** 

Indicando que he eliminado mi último archivo de migración.

O más simplemente:

> rake db:version 
Current version: 20120613030015 
+4

Gracias. Lo sé, pero necesitaba recuperarlo programáticamente, en una migración. – shigeya

Cuestiones relacionadas