如果有挂起的迁移,我想通过 MSBuild 停止我的构建过程。
但我不想在构建我的项目时触发 Migrate 目标。
那么,如何使用 Migratordotnet 仅检查挂起的迁移?
我只是想用它作为一个标志来停止我的构建过程.. !!
提前致谢 !
如果有挂起的迁移,我想通过 MSBuild 停止我的构建过程。
但我不想在构建我的项目时触发 Migrate 目标。
那么,如何使用 Migratordotnet 仅检查挂起的迁移?
我只是想用它作为一个标志来停止我的构建过程.. !!
提前致谢 !
检查另一个问题,它显示了一些代码以允许您检查是否有待处理的迁移。如果它返回一个或多个可用迁移,则很有可能在 MSBuild 中设置一个目标来运行此代码并退出目标。
这是控制台应用程序的一些基本代码,它将另一个问题的代码组合在一起。如果迁移可用或不可用,它只会将消息写入控制台窗口。您需要将其扩展为您的需求,但它应该可以工作。 TestMigration1
应替换为迁移所在程序集中的迁移类之一。您显然需要从控制台应用程序中引用该项目。
internal class Program {
private static void Main(string[] args) {
Assembly asm = Assembly.GetAssembly(typeof (TestMigration1));
const string myConnectionString =
"Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;";
ITransformationProvider provider = ProviderFactory.Create("SqlServer", myConnectionString);
var loader = new MigrationLoader(provider, asm, false);
List<long> availableMigrations = loader.GetAvailableMigrations();
Console.WriteLine(availableMigrations.Count > 0 ? "Migrations available" : "No migrations");
}
}
我认为 Migratordotnet 不支持它!
他们只为 MSBuild 提供 1 个目标,旨在执行迁移。所以没有其他方式可以与它交互以检查迁移。