私のRails 4アプリでは、いくつかのハウスキーピングを行う時が来たので、移行ファイルを1つの大きなファイル(schema.rbに似ています)に折りたたみたいと思いますが、アクセス方法がわかりません移行データを保存するデータベース内のテーブル。これにより、移行を実行したときにエラーや競合が発生しなくなります。
質問移行データを保存するテーブルのデータにアクセスして削除するにはどうすればよいですか?
楽しみのために、コンソールでこれらのモデルクラスを作成して操作することもできます...
class SchemaMigration < ActiveRecord::Base; self.primary_key = :version; end
その後、SchemaMigration.all、SchemaMigration.last.deleteなどを実行できます。
本当にSQLを使用するための単なる代替品であり、この低レベルで混乱する必要があることは非常にまれです...一般的に悪い考えですが、それを行う方法を見るのはクールです:)
別の解決策は、次の方法でアクセスすることです。
ActiveRecord::SchemaMigration
デイビッドからの答えは私の文脈ではうまくいきませんでした。
schema_migrations
テーブルにはリビジョン番号が保持されます。最後のレコードは、最後に実行された移行です。これらのレコードを手動で操作するだけです。
なぜこれをしたいのかわかりませんが、ここに行きます:
ActiveRecord :: Migrator.get_all_versions
最後のバージョンを取得するには:
ActiveRecord::SchemaMigration.last.version
またはすべてのバージョン:
ActiveRecord::SchemaMigration.all.map(&:version)