СУБД запускается в контейнере с именем $PROJECT_NAME_db_1.
Проектом dcape-app-pg-backup для БД
реализованы автоматические механизмы резервирования баз данных путем создания дампов
в каталоге ./var/data/db-backup, где ./ - это каталог установки dcape.
Каталог для хранения дампов указывается при старте контейнера Postgres
в переменной DCAPE_DB_DUMP_DEST.
Обновление Postgres выполняется двумя способами:
- облегченный, без применения специальных инструментов - остановка контейнера,
переключение в конфиге
.envнастройки на новый образ и запуск контейнера - выполняется при обновлении корректирующих (minor) версий Postgres; - основной, с применением специальных сценария pg_upgrade из Makefile - при обновлении основных (major) версий Postgres.
Для обновления основной ветки Postgres используется следующий алгоритм:
- установка значения с новой версией для PG_IMAGE
- подготовка и запуск контейнера с новой версией Postgres
- настройка паролей в контейнере с новой версией
- выполнение миграции кластера со старого контейнера на новый исполнением команды 'pg_dump_all -h db -p 5432 | psql'
- остановка обоих контейнеров Postgres, подготовка каталога data
- запуск контейнера Postgres
Этот алгоритм выполняется сценарием pg-upgrade в Makefile проекта dcape. После выполнения сценария, данные из каталога data
предыдущей версии кластера Postgres будут сохранены в каталоге {DCAPE_DIR}/var/data/db_previous_version. В случае необходимости отменить обновление, можно запустить предыдущую версию кластера БД с этим каталогом.
Со стороны пользователя, для обновления Postgres по этому алгоритму необходимо выполненить:
- установить значение с новой версией для PG_IMAGE в .env
- выполнить команду
make pg-upgrade
В случае необходимости создания полного дампа кластера Postgres (резервирование, перенос на другой сервер), дамп можно создать командой:
make pg_dumpall
Сценарий создает файл дампа с именем: pg_dumpall_$${PROJECT_NAME}_date +"%d.%m.%Y".sql.gz" (по умолчанию PROJECT_NAME=dcape)
Для загрузки дампа кластера Postgres использовать:
make pg_load_dumpall
Сценарий загружает файл дампа кластера с именем, созданным make pg_dumpall.