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.