Наш ручной рецепт для обновления версии PostgreSQL (пример с 9.6 до 10.1) на данный момент выглядит так:
Мы используем другой порт во время дампа / восстановления, чтобы сделать его атомарным. Мы хотим предотвратить подключения на этом этапе.
Может, эта процедура слишком сложная, не знаю.
До сих пор мы делали это вручную, но было бы неплохо автоматизировать.
Мы используем Salt для управления конфигурацией. Но это инструмент, основанный на состоянии. Приведенный выше рецепт больше похож на процедурную вещь.
Как это автоматизировать с помощью Salt?
Если есть решение получше (без соли) ... приятно. Пожалуйста, скажите мне.
согласно веб-сайту PostgreSQL, теперь существует утилита под названием pg_upgrade, разработанная специально для помощи во время обновлений.
Вы можете найти больше информации там. Они включают подробный пример использования.
С уважением.
Выглядит хорошо. И да, это простой процедурный последовательный подход, не требующий объектно-ориентированного подхода.
Поместите все свои ручные команды в сценарий оболочки.
#/bin/sh
Должна быть первая строка. Обязательно используйте полный путь для всех команд.
Используйте параметры для неинтерактивного режима, если для команды по умолчанию задан интерактивный.