データベース上で実行されている最新の移行バージョンを確認する方法があるかどうかを判断しようとしています。これは特定のデータベースの状態を知るためのものです。現在データベースにある移行(バージョン)を確認する方法ですか?
私は、エンティティフレームワーク6についてトラックを保持するテーブルを作成しています。私はそれを試していないが、エンティティフレームワークコアに類似したものがあれば知りたい。
データベース上で実行されている最新の移行バージョンを確認する方法があるかどうかを判断しようとしています。これは特定のデータベースの状態を知るためのものです。現在データベースにある移行(バージョン)を確認する方法ですか?
私は、エンティティフレームワーク6についてトラックを保持するテーブルを作成しています。私はそれを試していないが、エンティティフレームワークコアに類似したものがあれば知りたい。
少なくともアセンブリで定義されていますが、ターゲット・データベースに を適用されていない
移行を得ることが可能です。
DbMigrator
の方法getPendingMigrations()
介し
(source)。
データベースの実際のバージョンが必要な場合は、実際にはMigrationId
という列を含む移行履歴テーブル__MigrationHistory
があります。 https://msdn.microsoft.com/en-us/data/dn456841.aspx
次のコードを使用してEntity Frameworkのコア保留中のマイグレーションのリストを取得することが可能である:ここでは、それを操作する方法を示す記事です
var migrationsAssembly = db.GetService<IMigrationsAssembly>();
var historyRepository = db.GetService<IHistoryRepository>();
var all = migrationsAssembly.Migrations.Keys;
var applied = historyRepository.GetAppliedMigrations().Select(r => r.MigrationId);
var pending = all.Except(applied);
がhttps://github.com/aspnet/EntityFramework/issues/6110#issuecomment-242220554を参照してください。 )(https://github.com/aspnet/EntityFramework/issues/577
dbMigrator.GetPendingMigrations:
はあなたがEF 6を持っているのと同様の、より正式なAPIのための未解決の問題があります:
あなたが使用して文のカップルを含める必要が(https://msdn.microsoft.com/en-en/library/system.data.entity.migrations.dbmigrator.getpendingmigrations(v=vs.113).aspx)あなたが正しく理解している場合、あなたが探しているものかもしれません – Dominik
EF 6またはEF Coreで保留中の移行を取得しますか? –