Avevo lo stesso problema – ed eseguire quello script ha richiesto un po’ di guida da ask.discourse.com, perché non è semplicissimo per gli amministratori di sistema meno esperti!
Ecco un riepilogo per gli altri:
Per chi incontra questo problema con l’installazione standard di Docker, ecco come eseguire effettivamente lo script sopra.
Apri un shell e avvia psql.
-
Contenitore singolo:
cd /var/discourse ./launcher start app ## Necessario solo se hai già avuto un rebuild fallito ./launcher enter app su -c 'psql discourse' postgres -
Configurazione a due contenitori:
cd /var/discourse ./launcher enter data su -c 'psql discourse' postgres
Dovresti vedere un prompt discourse=#. In caso di dubbio, esegui \conninfo.
Esegui lo script.
Incolla l’intero blocco DO $$ ... $$; dal post di nat sopra nel prompt e premi Invio. Un’esecuzione riuscita stampa notifiche come:
NOTICE: Renamed resenha_rooms to voice_rooms
NOTICE: Renamed resenha_room_memberships to voice_room_memberships
...
Se invece solleva un’eccezione (ad esempio “Both Resenha and Voice tables exist. Nothing was changed.”), fermati e incolla il messaggio qui – lo script è volutamente sicuro e non modifica nulla in quel caso.
Esci e ricostruisci.
\q
exit
poi torna sull’host:
./launcher rebuild app # contenitore singolo
./launcher rebuild web_only # due contenitori (si può fare anche tramite bootstrap, ovviamente)
Potresti aver bisogno di due rebuild – il primo completa lo stato di migrazione parzialmente applicato, il secondo termina in modo pulito.