Как развернуть новую версию базы данных Azure PostgreSQL с резервной копией в VSTS?

Проблема

Мой рабочий процесс CI/CD сейчас довольно хорошо настроен в VSTS и Azure. Недостающая часть также обновляет мою базу данных после запросов на вытягивание или проверок на мастер.

Что я уже сделал

У меня есть сценарии резервного копирования БД в системе управления версиями. Сейчас у меня есть невероятная роскошь — небольшая несложная база данных. Временная мера, которую я принимал до сих пор, была до проверки, чтобы освоить:

  1. Отмена подключения к БД в PGAdmin
  2. Удаление существующей БД в powershell с помощью утилиты postgres dropdb
  3. Создание новой пустой БД в powershell, используя createdb
  4. Загрузка БД командой psql (так как по какой-то богом забытой причине pg_restore категорически отказывается работать с любыми архивными файлами, которые я создаю)

Вопросы

Во-первых, как я могу ссылаться на свой резервный артефакт в месте размещения с помощью любого сценария PowerShell в VSTS? К тому времени, когда мы дойдем до части «Выпуск», мое приложение будет заархивировано в ZIP-файл. Я играл с множеством разных задач и не могу понять, как это сделать.

Во-вторых, поскольку мои выпуски обрабатываются размещенными агентами Azure, даже если я выясню, как обращаться к дампам моей базы данных, я не могу представить, что эти агенты имеют доступ к утилитам postgres, таким как pg_restore или psql. Является ли мое единственное решение здесь запустить мою собственную виртуальную машину в качестве агента выпуска и установить утилиты перед выполнением powershell? Или есть какая-то комбинация задач, доступных в VSTS или Azure, которую я упустил?

Спасибо за вашу помощь!




Ответы (1)


Во-первых, вы можете извлечь zip-файл с помощью задачи Извлечь файлы, а значение переменной System.DefaultWorkingDirectory — это каталог, в который загружаются артефакты во время развертывания выпуска.

Во-вторых, размещенный агент не включает PostgreSQL, и вы не можете установить на него, поэтому вам нужно настроить частный агент. (Настройте требования PostgreSQL на этом агентском компьютере вручную)

person starian chen-MSFT    schedule 29.01.2018
comment
Ничего себе, не могу поверить, что я не подумал о задаче извлечения файлов, и спасибо, что подтвердили, что мне придется использовать частного агента. Я ценю быстрый ответ! - person Ryanman; 29.01.2018