Accesso al database mentre Discourse non è in esecuzione

Pericolo!!

Questo potrebbe benissimo compromettere la tua installazione, ma potrebbe tirarti fuori dai guai.
Usa queste istruzioni con estrema cautela.

Se non riesci a far funzionare il container di discourse con ./launcher rebuild app per qualsiasi motivo e hai bisogno di accedere al database per risolvere il problema, prova queste istruzioni.

La tecnica utilizza un’immagine Docker di Postgres per accedere al volume della tua installazione di Discourse. Non eseguirla mentre Discourse è in esecuzione!

Questo presuppone che discourse sia installato in /var/discourse e che tu sappia come operare Postgres tramite la riga di comando.

Cambia ‘mysecretpassword’ con un valore più sicuro.

# Scarica l'immagine corretta per la tua versione di Discourse.
docker pull postgres:15
        
# Avvia il container e indirizzalo ai file del database 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
        
 # Entra nel container
 docker exec -it postgres_container /bin/bash
        
 # Una volta nel container:
 su postgres
        
 # esegui il client del db
 psql
        
 # Elimina il database come ritieni opportuno.

# Al termine:
docker stop postgres_container
docker rm postgres_container
docker rmi postgres:15

Potrebbe essere necessario riavviare docker prima di tentare di riavviare discourse.

service restart docker.
2 Mi Piace