[Sito non disponibile :(] Fallimento aggiornamento/ricostruzione - Problema migrazione DB?

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.

image

Sembra che ritenga che tu abbia due utenti chiamati racerx. Penso che ci sia un argomento su un problema simile qui:

Anche uno più recente qui:

4 Mi Piace

Grazie, inizierò a seguire quella strada… auguratemi buona fortuna..

1 Mi Piace

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.

image

2 Mi Piace

Devi eseguire quei comandi all’interno del container. Qualcosa come

./launcher start app
./launcher enter app

Prima di sudo postgres

Modifica: oh, sei entrato nel container.

Quel postgres -c ha bisogno di sudo prima.

4 Mi Piace

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.

Continuerò a scavare. Non so ancora quanti duplicati ho…

/edit… è solo racerx. MALEDIZIONE RACERX!

image

2 Mi Piace

Hai capito come risolvere il problema?

Restituirei anche l’ID degli utenti (che è univoco) per identificarli correttamente e poi rinominerei uno di questi due utenti :slight_smile:

4 Mi Piace

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;
3 Mi Piace

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

2 Mi Piace

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.