3

如果有挂起的迁移,我想通过 MSBuild 停止我的构建过程。

但我不想在构建我的项目时触发 Migrate 目标。

那么,如何使用 Migratordotnet 仅检查挂起的迁移?
我只是想用它作为一个标志来停止我的构建过程.. !!

提前致谢 !

4

2 回答 2

1

检查另一个问题,它显示了一些代码以允许您检查是否有待处理的迁移。如果它返回一个或多个可用迁移,则很有可能在 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");
    }
}
于 2011-08-07T02:39:01.387 回答
0

我认为 Migratordotnet 不支持它!

他们只为 MSBuild 提供 1 个目标,旨在执行迁移。所以没有其他方式可以与它交互以检查迁移。

于 2011-08-02T04:32:57.770 回答