Nehmen wir an, Sie verwenden AWS RDS oder einen bestehenden PostgreSQL-Server, der woanders verwaltet wird. Es ist recht einfach, Discourse dazu zu bringen, eine solche Einrichtung zu verwenden, ohne dass dem, was Discourse selbst ausführt, Superuser-Berechtigungen erteilt werden müssen. So geht’s.
Voraussetzungen
Discourse erfordert, dass die Hauptversion von PostgreSQL mit der übereinstimmt, die wir in unseren Docker-Images ausliefern; wenn Sie versuchen, mit einer neueren oder älteren Version zu arbeiten, könnte es funktionieren, aber wir garantieren es nicht, und wenn etwas in Zukunft kaputt geht, müssen Sie mit den beiden Teilen leben. Wir benötigen auch einige Erweiterungen, die im Paket postgresql-contrib (oder seinem Äquivalent) verteilt sind.
Generieren Sie zufällig ein Passwort für die Verbindung (20+ Zeichen). In dieser Anleitung verwenden wir s3kr1t als Platzhalter.
DB einrichten
Führen Sie als Datenbank-Superuser Folgendes aus:
CREATE USER discourse PASSWORD 's3kr1t';
CREATE DATABASE discourse OWNER discourse;
\c discourse
CREATE EXTENSION hstore;
CREATE EXTENSION pg_trgm;
Das ist alles, was getan werden muss, um die DB für die Verwendung durch Discourse vorzubereiten.
Discourse konfigurieren
Richten Sie Discourse wie gewohnt ein und bearbeiten Sie dann containers/app.yml wie folgt:
-
Entfernen Sie die Zeile
- "templates/postgres.template.yml"unter dem Schlüsseltemplatesauf oberster Ebene (etwa am Anfang der Datei); -
Setzen Sie unter dem Schlüssel
envauf oberster Ebene Folgendes:DISCOURSE_DB_USERNAME: discourse DISCOURSE_DB_PASSWORD: s3kr1t DISCOURSE_DB_HOST: <IP oder Hostname> DISCOURSE_DB_NAME: discourse -
Sie müssen auch Folgendes festlegen, wenn Ihre Datenbank nicht den Standardport (5432) verwendet:
DISCOURSE_DB_PORT: <Port> DISCOURSE_DB_BACKUP_PORT: <Port> -
Bauen Sie mit
./launcher rebuild appneu auf, und Sie sollten einsatzbereit sein.