2012-01-13 6 views
55

移行バージョン番号を取得する良い方法はありますか?Railsの移行:現在の移行バージョンを取得する最善の方法

私は、特定の移行バージョンとは異なる動作をするモデルでメソッドを実装する必要があります。

接続アダプターがデータベースからバージョンを取得していますが、他のものを見つけることができない場合、私はassume_migrated_upto_versionを見つけました。


背景:私は、テーブルAから2つの列を削除し、テーブルBにそれらを移動すると、この変更時にはテーブルA.

からテーブルBに関連付けを追加しようとしていますこれらの2つの列にアクセスする必要があります。その後、互換性のためにこれらの列にプロキシメソッドを追加したいと考えています。

+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

関連する問題