1

Я пытаюсь настроить непрерывный поток доставки вокруг нового приложения ASP.NET Core/EF7.EF7 Code first -> SSDT package -> Развертывание производственного сервера

Я хотел бы использовать Code First EF7 для создания и обновления моей локальной базы данных разработчиков, а затем получить изменения в моем проекте базы данных SSDT. Оттуда я планирую использовать MSDeploy с поставщиком dbSqlPackage для обновления моего Azure SQL prod db с любыми изменениями при развертывании webapp в моей Azure App Service. https://msdn.microsoft.com/en-us/library/hh550081(v=vs.103).aspx

Также обратите внимание, что у меня будет какой-то предварительный шаг развертывания, где я проведу некоторое тестирование в системе preprod, прежде чем я без раздумий разблокирую db-обновления для производства.

Мой вопрос - как я локально на своем devbox, автоматизировать шаг, на котором я обновляю проект SSDT, чтобы отразить мою локальную базу данных dev? Я могу выполнить ручное сравнение SSDT с базой данных, в проект SSDT и обновить sql-файлы проекта SSDT. Я смотрел на SQLProject.exe, но из того, что я вижу, он будет создавать dacpac или публиковать в базе данных.

Кто-нибудь знает, как автоматизировать этот шаг?

ответ

0

Я думаю, что с учетом вашей установки я бы посмотрел на миграции EF, а не на SSDT, особенно учитывая, что вы находитесь на EF7, а миграции, как сифилис, не так неудобны, как раньше.

Предполагая, что вы не хотите проводить миграции EF, нет простого способа автоматизации генерации .sqlproj и связанных с ним файлов .sql из развернутой базы данных; но если вы не заботитесь о самом проекте базы данных, то не слишком сложно использовать sqlpackage или собственный код поверх DacFX - для генерации .dacpac из вашей развернутой базы данных, а затем используйте , что как артефакт которые вы продвигаете в других средах.

Что касается управления сегрегацией pre-prod/prod, существует множество способов сделать это, включая, помимо прочего, VSTS Release Management - который имеет встроенные задачи для развертывания в Azure SQL DB.

+0

Я пришел к тому же выводу - в долгосрочной перспективе используйте инструментарий SQLPackage для создания dacpac, а затем проверьте это в Sourcecontrol и не потрудитесь с проектом SSDT. И если есть проблемы при применении DACPAC, вернитесь к EF и исправьте его там в конфигурации или, возможно, в миграции (уродливый). Хотя на данный момент и просто для того, чтобы следить за базой данных, я буду вручную поддерживать промежуточный шаг SSDT. – LarsWA