2012-01-13 8 views
55

Есть ли хороший способ получить номер версии миграции?Rails migration: лучший способ получить текущую версию миграции

Мне нужно реализовать метод в модели, которая ведет себя по-разному и вне конкретной версии миграции.

Я нашел, что take_migrated_upto_version в адаптере подключения извлекает версию из базы данных, но не может найти других.


Справочной информации: Я пытаюсь удалить два столбец из таблицы А, хочу, чтобы переместить их в таблице B, и добавить ассоциации в таблице B из таблицы А.

Во время этого изменения, я необходимо получить доступ к этим двум столбцам. но после этого я хочу добавить прокси-метод для этих столбцов для совместимости.

+0

Почему у вас есть код, который ведет себя по-разному w.r.t миграции версий. Не могли бы вы объяснить. –

+0

Справа. Я добавил в этом вопрос. – shigeya

ответ

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

Большое спасибо! – shigeya

117

Там это гораздо лучше, так: rake db:migrate:status

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

Указав, что я удалил свой последний файл миграции.

Или еще проще:

> rake db:version 
Current version: 20120613030015 
+4

Спасибо. Я знаю это, но мне нужно было получить его программно, в процессе миграции. – shigeya

Смежные вопросы