Migratordotnet:如何检查迁移是否未决?

时间:2011-07-20 12:34:15

标签: .net data-migration migratordotnet migrator.net

如果存在待定迁移,我希望通过MSBuild停止我的构建过程。

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

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

提前致谢!

2 个答案:

答案 0 :(得分:1)

检查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");
    }
}

答案 1 :(得分:0)

  

我认为Migratordotnet不支持它!

     

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