我们从手动编码数据库迁移切换到代码优先的Entity Framework迁移。在我们的旧设置中,我们能够检查数据库是否太新。这很重要,因为它可能不兼容。不幸的是,我无法找到一种很好的方法来检查当前数据库的最新状态或是否过时。
用例是客户端在他的计算机上有2个版本的软件。客户端首先启动包含比旧版本更新的迁移的最新版本。之后,客户端启动旧版本的软件。目前,该软件将崩溃并烧毁,因为该模型不兼容。
答案 0 :(得分:3)
您可以使用
DbMigrator.GetPendingMigrations
检查数据库是否同步
您可以使用
DbMigrator.GetDatabaseMigrations
检查已对目标数据库应用了哪些迁移。
然后根据需要运行挂起的迁移:
var configuration = new Configuration();
var migrator = new DbMigrator(configuration);
migrator.Update();
http://romiller.com/2012/02/09/running-scripting-migrations-from-code/