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 и доступная точка подключения к базе данных; этот процесс не выполняется внутри развёрнутого сервиса.