Предыдущие несовместимые миграции ядра EF, как правильно обойти их в системе CI/CD?
Так что у меня есть Dev
и Staging
среды (Azure DevOps).
В CD
конвейер генерирует сценарий миграции Dev
среда DB
. Последний выполняетсяStaging release
трубопровод, чтобы поставить Staging
DB
своевременно.
Сгенерированный скрипт содержит все миграции (это не --from
, --to
сценарий).
Хотя команда, генерирующая сценарий миграции, использует --idempotent
параметр, чтобы избежать выполнения миграций, которые уже были перенесены в Staging
DB
некоторые запросы по-прежнему будут вызывать ошибки (при проверке синтаксиса), например, когда они используют некоторые свойства таблицы, которые больше не существуют.
Есть ли способ полностью обойти /NotExecute уже примененные миграции?
Я не хочу идти с --from
, --to
при создании сценария миграции в качестве конвейера компакт-диска (с использованием Dev
среда) не может знать, что было применено или нет в Staging
среда. Это потребовало бы написания сложного специального сценария Powershell (не время для этого).
1 ответ
Основываясь на моем опыте и подтвержденном моими коллегами, я боюсь, что если вы не захотите использовать from
to
в сгенерированном сценарии миграции или используйте сценарий PowerShell для достижения этой цели, нет другого метода, позволяющего обойти примененную миграцию, а затем применить только измененный скрипт миграции.
—-
В локальной командной строке, если есть какой-то сценарий, который может этого добиться, его также можно использовать в Azure Devops. В этом выпуске, если вы не хотите использоватьfrom
to
в команде миграции EF сценарий PowerShell был бы единственным способом достичь того, что вы хотите сделать.