Мигратордотнет: Как проверить, ожидает ли миграция? - PullRequest
3 голосов
/ 20 июля 2011

Я хочу остановить процесс сборки через MSBuild, если есть ожидающие миграции.

Но я не хочу запускать цель Migrate при создании моего проекта.

Итак, как можноЯ проверяю только ожидающие миграции с Migratordotnet?
Я просто хочу использовать его в качестве флага, чтобы остановить процесс сборки .. !!

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 07 августа 2011

Отметьте этот другой вопрос , который показывает некоторый код, позволяющий вам проверить, есть ли ожидающие миграции.Вполне возможно, что в 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");
    }
}
0 голосов
/ 02 августа 2011

Я думаю, что он не поддерживается Migratordotnet!

Они предоставляют только 1 цель для MSBuild, которая направлена ​​на выполнение миграций ... поэтому нет другого способа взаимодействия сэто проверить миграцию.

...