Managed Postgres

Eine verwaltete PostgreSQL-Datenbank, mit einem einzigen Befehl bereitgestellt und per Referenz mit Ihren Services verbunden.

Bereitstellen

lizard add postgres

Das erste Postgres-Add-on heißt postgres, daher funktioniert ${{postgres.DATABASE_URL}} sofort.

Umgebungsvariablen

Das Add-on stellt einen Standardsatz an Verbindungsvariablen bereit:

VariableBeschreibung
DATABASE_URLVollständige Verbindungszeichenfolge (postgres://…)
PGHOSTHost
PGPORTPort
PGUSERBenutzer
PGPASSWORDPasswort
PGDATABASEDatenbankname
POSTGRES_USERAlias für den Benutzer
POSTGRES_DBAlias für die Datenbank
POSTGRES_PASSWORDAlias für das Passwort

Einen Service verbinden

Referenzieren Sie die Verbindungszeichenfolge aus dem konsumierenden Service und deployen Sie erneut:

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

Die Referenz wird zur Bereitstellen-Zeit aufgelöst und automatisch rotiert, wenn sich die Zugangsdaten des Addons ändern — jeder konsumierende Service übernimmt den neuen Wert beim nächsten Bereitstellen.

Prüfen Sie die Verbindung, ohne die Verbindungszeichenfolge auszugeben:

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

Migrationen beim Bereitstellen ausführen

Verwenden Sie für Migrationen einen Pre-Bereitstellen-Befehl. Gestalten Sie Migrationen so, dass sie sicher erneut ausgeführt werden können und sowohl mit der alten als auch mit der neuen Anwendungsversion kompatibel sind:

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

Für eine Django-App lautet der Befehl python manage.py migrate; Python-App-Hosting enthält das entsprechende Pendant für Flask und FastAPI.

Daten durchsuchen und abfragen

Öffnen Sie den Postgres-Editor im Dashboard (lizard open), um SQL auszuführen und Tabellen direkt zu durchsuchen. Für lokale Ad-hoc-Arbeiten führen Sie einen Befehl mit der in den Service injizierten Umgebung aus:

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

Speicher erweitern

Datenvolumes können nur vergrößert werden:

lizard scale --service postgres --storage 8192

Mehrere Datenbanken

Wenn Sie ein zweites Postgres hinzufügen, erhält es einen generierten Namen (z. B. postgres-autumn-bear). Referenzieren Sie es explizit:

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

Siehe auch

Siehe Speicher und Wiederherstellung für die Planung von Backup und Wiederherstellung. Lokal lizard run erfordert psql und einen erreichbaren Datenbank-Endpunkt; es läuft nicht innerhalb des deployten Service.