Entity Framework 6 .net Framework Миграции / Консоль управления пакетами - как их запустить в конвейере Azure?

Я настраиваю конвейер выпуска Azure, и мне нужно выполнить все ожидающие миграции БД как часть выпуска.

Я рыскал по Интернету более часа, и все, что я могу найти, касается dotnet Core, в то время как база данных - EF6 в.Net Framework, а не dotnet Core (я делал это несколько раз раньше для Core).

Проблема, на мой взгляд, в том, что EF6 работает с использованием встроенной консоли диспетчера пакетов Visual Studio - этого просто нет в конвейере Azure; Это странность Visual Studio.

Кажется, есть несколько способов снять шкуру с этой кошки в своей голове, но я не могу понять, как начать с любого из них в контексте конвейера...

ВАРИАНТ 1. Запустить миграции в конвейере - но... как?

ВАРИАНТ 2: сценарии SQL - требуется запустить диспетчер пакетов для их генерации, чтобы их можно было запустить (если бы я мог сделать это в конвейере, я бы просто запустил его в любом случае, чтобы они были созданы локально и зафиксированы с кодом, несколько отстает как решение ИМО)

ВАРИАНТ 3: Напишите консольное приложение - мне действительно нужно это делать??

2 ответа

Решение

Ответ здесь - использовать инструмент командной строки ef6.exe и убедиться, что он поставляется вместе с вашей сборкой.

Это может быть полезно для всех здесь, пока Microsoft не обновит несуществующие документы: http://github.com/dotnet/EntityFramework.Docs/issues/1740 - это таблица с своего рода матрицей перевода между ними.

Вы можете попробовать расширения миграции Entity Framework.

Эта задача позволяет Build / Release предоставить параметры подключения к базе данных и выполнить миграцию Entity Framework 6 для базы данных.

  1. Создайте свой проект в выходной папке и включите исполняемый файл migrate.exe, который поставляется с Entity Framework 6.
  2. Создайте автоматическую сборку, которая упаковывает ваши файлы и делает их доступными во время выпуска.
  3. Создайте определение выпуска для соответствующей сборки
  4. Добавьте задачу миграции EF6. Как только эта задача будет добавлена ​​в среду в рамках выпуска, вам нужно будет ввести соответствующие параметры для ее настройки. Все параметры пути к файлу должны находиться в файловой системе сборки, ни один из них не относится к путям управления версиями TFS.

Вы также можете проверить эту статью.