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 есть резервные копии. Для удаления сервиса подтвердите удаление копий из хранилища или сохраните сервис.» Если копии нужны, не удаляйте сервис.
Удалить базу нельзя, пока идёт резервное копирование или восстановление. Нельзя и в том случае, если хранилище копий изменилось после их создания: сначала восстановите доступ к исходному хранилищу.