2

С помощью EF Migrations вы можете добавить миграционные леса, а затем продолжить работу с «Update-Database», чтобы применить изменения. И для отката следующих работ:Как выполнить откат при использовании MigrateDatabaseToLatestVersion

Update-Database -TargetMigration: <xyzMigration> 

Это замечательно подходит для обновления вашего разработчика. DB. Однако, когда я автоматизирую миграцию с использованием MigrateDatabaseToLatestVersion для развертывания в других средах, таких как test и prod. добавление файлов миграции для любых изменений и их отражение хорошо работает.

Но на случай, если я захочу откат до конкретной миграции, как мне это достичь? 'Update-Database -TargetMigration:' обновляет только локальные разработчики. DB или независимо от того, что ваша строка подключения указывает на локальную. И это должно запускаться через консоль диспетчера пакетов. Откат не является вариантом для фактического развертывания? Вам нужно просто «Добавить-миграцию» и указать новую миграцию, в которой есть все изменения, которые вы хотите отразить?

ответ

0

Для производственной базы данных, делающей Add-Migration с необходимыми изменениями, вероятно, будет иметь наибольший смысл, особенно если у вас несколько развертываний.

Других вариантов включают в себя:

  • Использования DbMigrator.Update() с параметром, который указует на целевую миграцию. (Я бы, вероятно, использовал отдельную сборку, только для этой цели ... кажется сложной задачей ... особенно когда вы добавляете дополнительные миграции в будущем).
  • Update-Database также имеет необязательные аргументы для -ConnectionString, но для этого потребуется установка Visual Studio на компьютере с доступом к таргетингу базы данных.
Смежные вопросы