Sto aggiornando alla versione corrente di Discourse oggi, la ricostruzione sta fallendo e non sono sicuro di cosa la stia causando. L’installazione era parecchie iterazioni indietro (penso 2.8x). L’aggiornamento dell’immagine docker è andato bene quando sono andato ad aggiornare Discourse mi è stato chiesto di fare un pull manuale e ricostruire (La maggior parte delle volte mi viene chiesto questo) tuttavia la ricostruzione non è andata a buon fine.
Ecco i risultati di una ricerca di “error” usando discourse-doctor. Mi scuso per gli screenshot, il client VNC basato sul web che ho non sembra supportare copia/incolla.
Sono bloccato su come avviare il re-indicizzazione. Sono riuscito ad avviare (anche se non è accessibile via web) e ad entrare nell’app ma senza successo nell’andare avanti.
Immagino che sudo non avrebbe funzionato, ma su sì e ora sto curiosando in postgres.
Quindi ora devo capire come risolvere i duplicati. La query sembra essere…
UPDATE users SET username_lower = 'xxx' WHERE id = xxx;
Ho provato un paio di varianti senza successo. Come puoi vedere, non sono sicuro al 100% della sintassi corretta qui poiché l’errore è correlato alle colonne.
Espandendo quanto detto da @Canapin, nel caso non l’avessi già capito, dovrebbe essere semplice rendere gli username univoci dato che hai già stabilito che racerx è l’unico username duplicato.
Innanzitutto, se non l’hai già fatto, assicurati che racerx2 non esista già, in modo da non spostare semplicemente il problema a un diverso username: (Se ottieni un id, prova un diverso username.)
SELECT id FROM users WHERE username_lower = 'racerx2';
Una volta che hai un username non utilizzato, ottieni gli ID degli account duplicati di racerx:
SELECT id from users WHERE username_lower = 'racerx';
Scegline uno, non importa quale, anche se consiglierei il più alto, quindi cambia il suo username: (Sostituendo racerx2 con un diverso username se necessario e 12345 con l’ID di racerx che hai scelto.)
UPDATE users SET username_lower = 'racerx2' WHERE id = 12345;
Aggiornamento (Era nelle bozze da qualche giorno, scusate) Sembra che abbia risolto. Non sono sicuro se quello che ho fatto sia stato l’approccio giusto, ma la ricostruzione è andata a buon fine.
Ho trovato difficile modificare/aggiungere il valore di racerx nella colonna username_lower usando la sintassi, quindi ho proceduto in un altro modo. cercando gli ID per le righe e modificando il valore di username_lower in una riga specifica.
Per prima cosa ho provato a ottenere un report di tutte le righe nella tabella users che avevano “racerx” nella colonna username_lower.
select all from users where username_lower ='racerx';
Da questo ho deciso di modificare racerx in racerx2, non ricordo esattamente cosa ho digitato per farlo. Penso che sia stato UPDATE SET from users username_lower racerx to racerx2