Skip to main content

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_DEFAULT_EMAIL - почта администратора pgAdmin
    • Секрет PGADMIN_DEFAULT_PASSWORD - пароль для доступа к pgAdmin (не имеет ничего общего с паролем от БД)
  • Пушим изменение в репозиторий и ждем, пока pgAdmin запуститься (может занять некоторое время).

Настройка pgAdmin

  1. Переходим по ссылке на приложение, указанной в "Инфо" проекта.

  2. Вводим данные для входа в pgAdmin.

  3. Слева правой кнопкой мыши Server->Register->Server...

  4. В окне в разделе General указываем название для подключаемой БД. В разделе Connection указываем:

    • Host name/address - внутреннее доменное имя проекта с postgreSQL amvera-<имя-пользователя>-run-<транслитерированное-имя-проекта>
    • Maintenance database - название БД (по умолчанию postgres)
    • Username - то, что указывалось в переменной POSTGRES_USER
    • Password - то, что указывалось в секрете POSTGRES_PASSWORD

    • Нажмаем кнопку "Save"

Хитрость: Чтобы экономить на потреблении проекта с pgAdmin рекомендуем ставить его на паузу после окончания работы.