DeployCode
Базы данных

PostgreSQL

База PostgreSQL на вашем сервере.

Создание базы

Новый сервис → PostgreSQL в нужном окружении. Мастер «Новая база PostgreSQL» состоит из трёх шагов: тип, сервер, настройки.

ПолеЧто указать
Название сервисаКак база будет называться в панели
Имя базыПодставляется из названия: латинские буквы, цифры и подчёркивание. Для названия на кириллице — app
ПользовательПо умолчанию app
ВерсияPostgreSQL 18 (по умолчанию), 17 или 16
ПарольОставьте пустым — DeployCode создаст пароль сам. В пароле нельзя использовать пробелы и символы $ ! ' " \ /

Кнопка «Создать и запустить» создаёт базу и сразу запускает её. Данные хранятся в отдельном постоянном Docker-томе на выбранном сервере.

Версию PostgreSQL после создания в панели изменить нельзя. Выбирайте версию сразу.

Подключение из приложения

Ссылка на сервис (рекомендуется)

Добавьте приложению переменную типа «Ссылка на сервис», например DATABASE_URL, и выберите источник: базу, поле «Строка подключения» и внутреннюю сеть. DeployCode сам подставит адрес, пользователя и пароль при развёртывании — копировать пароль не нужно, а значение не видно в журналах.

Так же можно сослаться на отдельные поля: хост, порт, имя базы, пользователя или пароль.

Ту же переменную можно создать на странице «Архитектура»: приложение → «Связи» → «Настроить подключение к Postgres». Там же есть кнопка «Проверить соединение», см. Подключения к Postgres.

Внутренняя сеть работает, когда приложение и база на одном сервере, и только при запуске приложения. Если база нужна при сборке, например для миграций в команде сборки, выберите внешний адрес.

Скопировать строку

На странице базы, в разделе «Подключение», есть готовые строки для приложения на том же сервере:

DATABASE_URL=postgresql://app:<пароль>@<имя-сервиса-docker>:5432/<имя-базы>

Там же есть вариант с отдельными переменными PGHOST, PGPORT, PGDATABASE, PGUSER, PGPASSWORD. Скопированную строку с паролем храните как переменную типа «Секрет».

Внешнее подключение

Чтобы подключиться из DBeaver, DataGrip или с другого сервера, откройте внешний порт: блок «Настройка внешнего порта», поле «Порт на сервере», затем «Сохранить и применить». PostgreSQL перезапустится. Пустое значение закрывает порт.

Открытый порт доступен по публичному IP сервера. Ограничьте входящие подключения файрволом и используйте длинный случайный пароль.

Пароль

Пароль скрыт: «Показать» открывает его, «Скопировать» копирует. «Изменить пароль» меняет пароль пользователя прямо в работающей базе. Переменные со ссылкой на базу получат новый пароль при следующем развёртывании приложения, а скопированные вручную строки нужно обновить.

Управление

В шапке страницы базы:

КнопкаЧто делает
Резервные копииОткрывает копии этой базы
РедактироватьНазвание и описание
ОстановитьОстанавливает базу. Данные остаются в томе
Запустить / Развернуть сноваЗапускает базу или применяет изменённые настройки

В «Расширенных настройках» — лимиты памяти и CPU контейнера и именованные тома. Изменения применяются после «Развернуть снова». Удаление тома из списка не удаляет сам Docker-том на сервере.

Логи

Раздел «Логи PostgreSQL» — кнопка «Показать логи». Отдельно есть «Логи развёртывания» — вывод Docker при последнем запуске.

Резервные копии

Автоматические копии по расписанию, ручные копии и восстановление на другой сервер — см. Резервные копии PostgreSQL.

Удаление

«Опасная зона» → «Удалить PostgreSQL».

Удаление останавливает PostgreSQL и убирает сервис и его настройки из DeployCode.

База удаляется сразу, без корзины. Docker-том с данными остаётся на сервере, и очищать его нужно отдельно. Не считайте его резервной копией.

Если у базы есть резервные копии в хранилище, удалить её можно, только отметив «Удалить резервные копии из хранилища без возможности восстановления». Без отметки панель откажет: «У PostgreSQL есть резервные копии. Для удаления сервиса подтвердите удаление копий из хранилища или сохраните сервис.» Если копии нужны, не удаляйте сервис.

Удалить базу нельзя, пока идёт резервное копирование или восстановление. Нельзя и в том случае, если хранилище копий изменилось после их создания: сначала восстановите доступ к исходному хранилищу.

На этой странице