Предыдущие несовместимые миграции ядра 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 был бы единственным способом достичь того, что вы хотите сделать.

Другие вопросы по тегам