Мигратордотнет: Как проверить, ожидает ли миграция?
Я хочу остановить процесс сборки через MSBuild, если есть ожидающие миграции.
Но я не хочу вызывать цель Migrate при создании моего проекта.
Итак, как я могу проверить только ожидающие миграции с Migratordotnet?
Я просто хочу использовать его как флаг, чтобы остановить процесс сборки..!!
Заранее спасибо!
2 ответа
Проверьте этот другой вопрос, который показывает некоторый код, позволяющий вам проверить, существуют ли ожидающие миграции. Вполне возможно, что в 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, которая предназначена для выполнения миграций... поэтому нет другого способа взаимодействия с ним для проверки миграций.