web-dev-qa-db-ja.com

スキーマ移行テーブル

私のRails 4アプリでは、いくつかのハウスキーピングを行う時が来たので、移行ファイルを1つの大きなファイル(schema.rbに似ています)に折りたたみたいと思いますが、アクセス方法がわかりません移行データを保存するデータベース内のテーブル。これにより、移行を実行したときにエラーや競合が発生しなくなります。

質問移行データを保存するテーブルのデータにアクセスして削除するにはどうすればよいですか?

32
tommyd456

楽しみのために、コンソールでこれらのモデルクラスを作成して操作することもできます...

class SchemaMigration < ActiveRecord::Base; self.primary_key = :version; end

その後、SchemaMigration.all、SchemaMigration.last.deleteなどを実行できます。

本当にSQLを使用するための単なる代替品であり、この低レベルで混乱する必要があることは非常にまれです...一般的に悪い考えですが、それを行う方法を見るのはクールです:)

57
David Lowenfels

別の解決策は、次の方法でアクセスすることです。

ActiveRecord::SchemaMigration

デイビッドからの答えは私の文脈ではうまくいきませんでした。

29
Peter Piper

schema_migrationsテーブルにはリビジョン番号が保持されます。最後のレコードは、最後に実行された移行です。これらのレコードを手動で操作するだけです。

10
steakchaser

なぜこれをしたいのかわかりませんが、ここに行きます:

ActiveRecord :: Migrator.get_all_versions

7
Agustin

最後のバージョンを取得するには:

ActiveRecord::SchemaMigration.last.version

またはすべてのバージョン:

ActiveRecord::SchemaMigration.all.map(&:version)
0
localhostdotdev