Managed Postgres

1 つのコマンドでプロビジョニングされ、参照によってサービスに接続されるマネージド 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"'

デプロイ時にマイグレーションを実行

マイグレーションには pre-deploy コマンドを使用します。マイグレーションは安全に再試行でき、古いアプリケーション バージョンと新しいアプリケーション バージョンの両方に互換性があるようにしてください:

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

Django アプリの場合、コマンドは python manage.py migrate です。Pythonアプリホスティング には Flask と FastAPI で同等の方法があります。

データの参照とクエリ

ダッシュボードの Postgres editor (lizard open) を開いて、SQL を実行し、テーブルを直接参照できます。一時的なローカル作業には、サービスに注入された環境でコマンドを実行します:

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

ストレージを拡張

データボリュームは拡張のみ可能です:

lizard scale --service postgres --storage 8192

複数のデータベース

2 つ目の Postgres を追加すると、自動生成された名前が付きます(例: postgres-autumn-bear)。明示的に参照してください:

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

関連項目

バックアップとリストアの計画については、ストレージとリカバリ を参照してください。ローカルの lizard run には psql と到達可能なデータベース エンドポイントが必要です。これはデプロイされたサービス内では実行されません。