【发布时间】:2011-07-20 12:34:15
【问题描述】:
如果有挂起的迁移,我想通过 MSBuild 停止我的构建过程。
但我不想在构建项目时触发 Migrate 目标。
那么,如何使用 Migratordotnet 仅检查待处理的迁移?
我只是想用它作为一个标志来停止我的构建过程.. !!
提前致谢!
【问题讨论】:
标签: .net data-migration migratordotnet migrator.net
如果有挂起的迁移,我想通过 MSBuild 停止我的构建过程。
但我不想在构建项目时触发 Migrate 目标。
那么,如何使用 Migratordotnet 仅检查待处理的迁移?
我只是想用它作为一个标志来停止我的构建过程.. !!
提前致谢!
【问题讨论】:
标签: .net data-migration migratordotnet migrator.net
检查this other question,其中显示了一些代码,可让您检查是否有待处理的迁移。很有可能在 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 个目标,旨在执行迁移。所以没有其他方式可以与之交互以检查迁移。
【讨论】: