Как проверить, должна ли миграция должна быть запущена или запустилась с беглым мигратором?
-
23-12-2019 - |
Вопрос
Использование свободного сигнала, есть ли способ выяснить, действительно ли функция Migrateup () действительно будет мигрировать что-то или на сегодняшний день?
Решение
Нет простого способа с использованием общедоступного API, будет ли метод MigrateUp
что-то сделать или нет.
Тем не менее, существует несколько «других» путей вокруг этого, которые зависят от внутренних органов свободных:
- .
-
вытекает из генеракодицетагкода, переопределяйте метод
MigrationRunner
, который вызывается каждый раз, когда миграция применяется, и отслеживать / журнал применяемых миграций -
Создать пользовательскую реализацию
ApplyMigrationUp
, настроить беглотемигратор, чтобы использовать его через генеракодицетагкод и в вашем элементе генеракодичечногоdaceCodCODCODCODECODCODETAGCode. ПараметрIAnnouncer
содержит текст GenacodicCodcode, который означает, что этап миграции был применен. - Посмотрите на ожидающиеся миграции перед запуском
IRunnerContext
, если вы можете получить ссылку наSay
, вы можете:
MigrationRunner runner = ... // get a reference to the runner
if (runner.MigrationLoader.LoadMigrations() // get all the migrations
.Any(pair => !runner.VersionLoader
.VersionInfo.HasAppliedMigration(pair.Key)))
// check which migrations have been applied
{
// there are pending migrations, do your logic here
}
.