Проблема
Мой рабочий процесс CI/CD сейчас довольно хорошо настроен в VSTS и Azure. Недостающая часть также обновляет мою базу данных после запросов на вытягивание или проверок на мастер.
Что я уже сделал
У меня есть сценарии резервного копирования БД в системе управления версиями. Сейчас у меня есть невероятная роскошь — небольшая несложная база данных. Временная мера, которую я принимал до сих пор, была до проверки, чтобы освоить:
- Отмена подключения к БД в PGAdmin
- Удаление существующей БД в powershell с помощью утилиты postgres
dropdb
- Создание новой пустой БД в powershell, используя
createdb
- Загрузка БД командой psql (так как по какой-то богом забытой причине
pg_restore
категорически отказывается работать с любыми архивными файлами, которые я создаю)
Вопросы
Во-первых, как я могу ссылаться на свой резервный артефакт в месте размещения с помощью любого сценария PowerShell в VSTS? К тому времени, когда мы дойдем до части «Выпуск», мое приложение будет заархивировано в ZIP-файл. Я играл с множеством разных задач и не могу понять, как это сделать.
Во-вторых, поскольку мои выпуски обрабатываются размещенными агентами Azure, даже если я выясню, как обращаться к дампам моей базы данных, я не могу представить, что эти агенты имеют доступ к утилитам postgres, таким как pg_restore
или psql
. Является ли мое единственное решение здесь запустить мою собственную виртуальную машину в качестве агента выпуска и установить утилиты перед выполнением powershell? Или есть какая-то комбинация задач, доступных в VSTS или Azure, которую я упустил?
Спасибо за вашу помощь!