PostgreSQL
Разворачивание СУБД
Кратко: Чтобы использовать PostgreSQL вам нужно создать как минимум три проекта. Назовём их например (ваше_приложение, postgres, pgadmin). Проект с pgаdmin можно отключать, когда вы его не используете в целях экономии. Далее каждый из проектов склонировать на ПК. Это создаст 3 папки на вашем ПК. В "ваше_приложение" нужно скопировать непосредственно ваш проект. В "postgres" и "pgadmin" нужно в каждом добавить yaml из инструкции. Добавить переменные и секреты, как указано в инструкции ниже. Только после этого все "запушить".
Подробно:
Для развертывания СУБД postgreSQL вам потребуется выполнить следующие шаги:
1. Создать проект с подходящим тарифом.
2. Склонировать на свой компьютер подключенный к проекту репозиторий.
Это делается командой:
git clone https://git.amvera.ru/<имя-пользователя>/<транслитерированное-имя-проекта>
Более подробную информацио о работе с репозиторием можно найти в разделе документации Git.
3. Создать конфигурационный yaml файл.
В корневой папке репозитория необходимо создать конфигурационный файл amvera.yml
Конфигурационный файл состоит из секций meta
и run
:
meta:
environment: db
toolchain:
name: postgresql
version: 13
run:
args: listen_addresses=0.0.0.0
При развертывании используется образ Docker postgres:${meta.toolchain.version}
. Параметр meta.toolchain.version
необязательный. Если его не указать, будет использоваться последний образ postgres:latest
.
Так как значение параметра meta.toolchain.version
является тегом образа postgres, можно в качестве его значения использовать произвольный тег из докер хаба.
В секции run
можно передавать необходимы для postgresql параметры. Параметр listen_addresses=0.0.0.0
позволяет подключиться к базе данных из других проектов.
4. Указать необходимые параметры окружения.
В разделе "Переменные" у проекта необходимо задать имя пользователя и пароль:
- Для добавления имени пользователя необходимо нажать на кнопку "Создать переменную". В поле "Название" указать
POSTGRES_USER
, а в поле значение вписать желаемое имя пользователя. - Для добавления пароля и безопасного его хранения требуется нажать на кнопку "Создать секрет". В поле "Название" указать
POSTGRES_PASSWORD
, а в поле значение вписать желаемый пароль.
ВАЖНО: Придумать достаточно сложный пароль для базы данных, чтобы злоумышленники не смогли получить к ней доступ.
При необходимости, можно задать и другие поддерживаемые образом парметры, такие как: POSTGRES_DB
, POSTGRES_INITDB_ARGS
, POSTGRES_INITDB_WALDIR
, POSTGRES_HOST_AUTH_METHOD
. Более подробно об этих параметрах можно узнать на странице образа.
ВАЖНО: Для предотвращения потери данных при перезагрузке проекта НЕЛЬЗЯ указывать параметр PGDATA, так как монтирование диска настроено на
/var/lib/postgresql/data
.
4. Отправить изменения в удаленный репозиторий.
-
git add .
-
git commit -m "initial commit"
-
git push
Подключение к БД
Подключение к базе данных возможно только из других проектов, созданных в Amvera.
Для подключения к базе данных необходимо использовать 5432
порт и внутренее доменное имя, указанное на странице "Инфо" в формате:
amvera-<имя-пользователя>-run-<транслитерированное-имя-проекта>
Если при первом запуске проекта не был указан парметр окружения POSTGRES_DB
, то для названия БД по умолчанию используется имя: postgres
.
Развертывание pgAdmin
ВАЖНО: для работы pgAdmin требуется контейнер с тарифом не ниже "Начальный". На тарифе "Пробный" pgAdmin работать не будет из-за недостатка ОЗУ!
Порядок действий совпадает с развертыванием самой СУБД, однако:
-
Файл
amvera.yml
меняется на:meta: environment: db toolchain: name: pgadmin version: 7.1
При развертывании используется образ Docker
dpage/pgadmin4:${meta.toolchain.version}
-
Требуется указать следующие параметры окружения:
-
Пушим изменение в репозиторий и ждем, пока pgAdmin запуститься (может занять некоторое время).
Настройка pgAdmin
-
Переходим по ссылке на приложение, указанной в "Инфо" проекта.
-
Слева правой кнопкой мыши Server->Register->Server...
-
В окне в разделе General указываем название для подключаемой БД. В разделе Connection указываем:
- Host name/address - внутреннее доменное имя проекта с postgreSQL
amvera-<имя-пользователя>-run-<транслитерированное-имя-проекта>
- Maintenance database - название БД (по умолчанию
postgres
) - Username - то, что указывалось в переменной
POSTGRES_USER
- Password - то, что указывалось в секрете
POSTGRES_PASSWORD
- Нажмаем кнопку "Save"
- Host name/address - внутреннее доменное имя проекта с postgreSQL
Хитрость: Чтобы экономить на потреблении проекта с pgAdmin рекомендуем ставить его на паузу после окончания работы.