Ecco un caso che non riesco a risolvere dopo molte installazioni e migrazioni flawless di Discourse.
Contesto:
Avevamo Discourse funzionante correttamente in un container Docker e stavamo lavorando su alcune sfumature del database PostgreSQL.
Il problema si è verificato quando non eravamo soddisfatti dei risultati ottenuti dalla ricottura dei post grezzi; di conseguenza, nulla funzionava come previsto, così abbiamo deciso di eliminare il database PostgreSQL e ricrearlo; ma l’app continuava a restituire vari errori di permessi, ecc.
Poi, abbiamo deciso di “andare sul serio” e di distruggerlo in stile “che ci importa”; siamo quindi entrati direttamente in PostgreSQL (sapendo che probabilmente non sarebbe andato a buon fine, ma volevamo provare) ed abbiamo eliminato tutti i topic e i post dal database (DELETE FROM topics; DELETE FROM posts;). Questo ha funzionato in parte; ma non eravamo soddisfatti dei risultati (fine dell’esperimento), quindi abbiamo deciso di ricostruire Discourse da zero, spostando il vecchio /var/discourse e recuperando una versione fresca da git.
Il Problema
Quando abbiamo costruito un ambiente totalmente nuovo partendo da un git pull, la costruzione è andata a buon fine fino al momento in cui siamo andati sul sito per creare il login dell’amministratore.
Quando abbiamo provato ad accedere come amministratore per una nuova installazione, ci siamo trovati di fronte al vecchio sito che avevamo distrutto! Questa è stata una sorpresa.
Quindi abbiamo deciso di entrare in questa nuova applicazione e provare a eliminare tutte le tabelle di Discourse dal database, cosa che abbiamo fatto; ma, sorpresa, quando abbiamo ricostruito l’app di nuovo, non era un sito fresco, bensì lo stesso sito rotto descritto sopra.
Allora abbiamo eliminato tutte le directory /var/*discourse* e rimosso tutte le immagini Docker, pensando che questo avrebbe garantito una pulizia totale, e abbiamo ricominciato da capo, recuperando da git in /var/discourse e costruendo quello che credevamo fosse da zero assoluto; ma sorpresa… il vecchio sito è ancora lì.
Pensando: “Come è possibile questo?”…??
Abbiamo eseguito ps aux | grep postgres fuori dal container Docker e notato che PostgreSQL esisteva fuori dal container (cosa che ci ha sorpreso, poiché erroneamente pensavamo che l’installazione Docker di Discourse fosse interamente contenuta nel container); quindi abbiamo cercato dove pulire, ma senza successo.
Abbiamo cercato finché i link di Google non sono diventati viola, abbiamo provato di tutto… ma non riusciamo ad ottenere un’installazione pulita di Discourse.
Pensando di aver perso qualcosa, abbiamo provato su un nuovo server, mai utilizzato per installare Discourse, e abbiamo installato Discourse da zero; ha funzionato perfettamente come al solito (un altro server).
La Domanda
La mia domanda è, immagino… quando un’installazione è andata completamente in tilt (in un modo o nell’altro), come possiamo riportare il server, incluso PostgreSQL, allo stato zero iniziale in modo che questo problema scompaia e possiamo avviare un’installazione completamente nuova?
Scusate per un post così lungo, quando forse solo La Domanda sarebbe bastata per ottenere aiuto.
Grazie.