Managed Postgres

Управляемая база данных PostgreSQL, которую можно создать одной командой и подключить к сервисам по ссылке.

Создание

lizard add postgres

Первое дополнение Postgres получает имя postgres, поэтому ${{postgres.DATABASE_URL}} работает сразу.

Переменные окружения

Дополнение предоставляет стандартный набор переменных подключения:

ПеременнаяОписание
DATABASE_URLПолная строка подключения (postgres://…)
PGHOSTХост
PGPORTПорт
PGUSERПользователь
PGPASSWORDПароль
PGDATABASEИмя базы данных
POSTGRES_USERАлиас пользователя
POSTGRES_DBАлиас базы данных
POSTGRES_PASSWORDАлиас пароля

Подключение сервиса

Укажите ссылку на строку подключения в сервисе-потребителе и выполните повторное развёртывание:

lizard secrets set DATABASE_URL='${{postgres.DATABASE_URL}}' --service api
lizard redeploy --service api

Ссылка вычисляется при развёртывании и автоматически обновляется при изменении учётных данных дополнения — каждый сервис-потребитель получает новое значение при следующем развёртывании.

Проверьте подключение, не выводя строку подключения:

lizard run --service api -- sh -c 'psql "$DATABASE_URL" -c "SELECT 1"'

Запуск миграций при развёртывании

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

lizard service set api --set preDeployCommand="npm run migrate"
lizard redeploy --service api

Для приложения Django используется команда python manage.py migrate; в разделе Хостинг Python-приложений приведены её аналоги для Flask и FastAPI.

Просмотр данных и выполнение запросов

Откройте редактор Postgres в панели управления (lizard open), чтобы выполнять SQL-запросы и просматривать таблицы напрямую. Для разовых локальных задач выполните команду, используя внедрённое в сервис окружение:

lizard run --service api -- sh -c 'exec psql "$DATABASE_URL"'

Увеличение объёма хранилища

Объём хранилища данных можно только увеличивать:

lizard scale --service postgres --storage 8192

Несколько баз данных

При добавлении второго экземпляра Postgres для него генерируется имя, например postgres-autumn-bear. Укажите ссылку на него явно:

lizard add postgres
lizard secrets set ANALYTICS_URL='${{postgres-autumn-bear.DATABASE_URL}}' --service api

См. также

Сведения о планировании резервного копирования и восстановления см. в разделе хранилище и восстановление. При локальном использовании lizard run требуется psql и доступная точка подключения к базе данных; этот процесс не выполняется внутри развёрнутого сервиса.