Accéder à la base de données lorsque Discourse ne fonctionne pas

Danger !!

Cela pourrait bien casser votre installation, mais cela pourrait vous sortir d’un mauvais pas.
Utilisez ces instructions avec une extrême prudence.

Si vous ne parvenez pas à exécuter le conteneur Discourse avec ./launcher rebuild app pour quelque raison que ce soit et que vous avez besoin d’accéder à la base de données pour résoudre le problème, essayez ces instructions.

La technique utilise une image Docker de Postgres pour accéder au volume de votre installation Discourse. Ne l’exécutez pas pendant que Discourse est en cours d’exécution !

Cela suppose que Discourse est installé dans /var/discourse et que vous savez comment utiliser Postgres en ligne de commande.

Remplacez « mysecretpassword » par une valeur plus sécurisée.

# Téléchargez l'image correcte pour votre version de Discourse.
docker pull postgres:15

# Démarrez le conteneur et dirigez-le vers les fichiers de la base de données locale.
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

# Entrez dans le conteneur
 docker exec -it postgres_container /bin/bash

# Une fois dans le conteneur :
 su postgres

# exécutez le client de base de données
 psql

# Supprimez la base de données comme bon vous semble.

# Une fois terminé :
docker stop postgres_container
docker rm postgres_container
docker rmi postgres:15

Vous devrez peut-être redémarrer Docker avant de tenter de redémarrer Discourse.

service restart docker.
2 « J'aime »