Zugriff auf die Datenbank, während Discourse nicht läuft

Gefahr!!

Dies kann Ihre Installation beschädigen, aber es kann Sie aus einer misslichen Lage befreien.
Gehen Sie mit diesen Anweisungen mit äußerster Vorsicht vor.

Wenn Sie den Discourse-Container aus irgendeinem Grund nicht mit ./launcher rebuild app ausführen können und auf die Datenbank zugreifen müssen, um das Problem zu lösen, versuchen Sie diese Anweisungen.

Die Technik verwendet ein Docker-Image von Postgres, um auf das Volume Ihrer installierten Discourse-Installation zuzugreifen. Führen Sie dies nicht aus, während Discourse läuft!

Dies setzt voraus, dass Discourse in /var/discourse installiert ist und Sie wissen, wie Sie Postgres über die Befehlszeile bedienen.

Ändern Sie „mysecretpassword“ in einen sichereren Wert.

# Ziehen Sie das richtige Image für Ihre Discourse-Version.
docker pull postgres:15

# Starten Sie den Container und leiten Sie ihn zu den lokalen Datenbankdateien.
docker run --name postgres_container -e POSTGRES_PASSWORD=mysecretpassword -d -p 5432:5432 -v /var/discourse/shared/standalone/postgres_data:/var/lib/postgresql/data postgres:15

# Betreten Sie den Container
docker exec -it postgres_container /bin/bash

# Sobald Sie im Container sind:
su postgres

# Führen Sie den DB-Client aus
psql

# Löschen Sie die Datenbank nach Belieben.

# Wenn Sie fertig sind:
docker stop postgres_container
docker rm postgres_container
docker rmi postgres:15

Möglicherweise müssen Sie Docker neu starten, bevor Sie versuchen, Discourse neu zu starten.

service restart docker.
2 „Gefällt mir“