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

**URL:** https://meta.discourse.org/t/site-down-upgrade-rebuild-failure-db-migration-issue/268359
**Category:** Self-hosting
**Created:** [14 Giugno 2023, 8:49pm UTC](https://meta.discourse.org/t/site-down-upgrade-rebuild-failure-db-migration-issue/268359 "2023-06-14T20:49:04Z")
**Posts on this page:** 10
**Page:** 1

<div class="post-metadata">

### Author: ![SouperC](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/souperc/32/62875_2.png) [@SouperC](https://meta.discourse.org/u/SouperC)
#### Post date: [14 Giugno 2023, 8:49pm UTC](https://meta.discourse.org/t/site-down-upgrade-rebuild-failure-db-migration-issue/268359/1 "2023-06-14T20:49:04Z")

</div>

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](https://global.discourse-cdn.com/meta/original/4X/4/4/6/446be5590c64428ba73bdb43071066e9d80c6302.png)

 ![image](https://global.discourse-cdn.com/meta/original/4X/5/c/8/5c8b3392cc962608efb82ea9151f64c7dcae32bf.png)

![image](https://cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/e/5/a/e5ae0b334a216da43234813d504f397f846d6c73.png)

 ![image](https://global.discourse-cdn.com/meta/original/4X/7/7/1/77142b8c968470a3214f4a7e6546542faa2fb48b.png)

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [14 Giugno 2023, 8:57pm UTC](https://meta.discourse.org/t/site-down-upgrade-rebuild-failure-db-migration-issue/268359/2 "2023-06-14T20:57:40Z")

</div>

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

> [@Paulus\_Schoutsen](#):
>
> Avevamo anche 8 utenti che avevano un `username_lower` duplicato (troppi mike e marco). Li abbiamo rinominati aggiornando sia `username` che `username_lower`. Dai dati utente abbiamo notato che la prima corruzione è avvenuta nel dicembre 2019.

Anche uno più recente qui:

> [@PG::UniqueViolation Problem during 3.1.0.beta4 upgrade](https://meta.discourse.org/t/pg-uniqueviolation-problem-during-3-1-0-beta4-upgrade/262163/3?u=jammydodger):
>
> Thanks for your reply. Yes, I am able to start / enter the app, I am also doing as you suggested. discourse=# REINDEX TABLE users; ERROR: could not create unique index "index\_users\_on\_username\_lower" DETAIL: Key (username\_lower)=(mostafa11) is duplicated. The problem is duplicates keep coming, I have a lot of user over 300K. Is there any way to check how many duplicates or list all of them? For fixing, I was updating the username\_lower like this: I was appending some number at the end. U…

---

<div class="post-metadata">

### Author: ![SouperC](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/souperc/32/62875_2.png) [@SouperC](https://meta.discourse.org/u/SouperC)
#### Post date: [14 Giugno 2023, 9:07pm UTC](https://meta.discourse.org/t/site-down-upgrade-rebuild-failure-db-migration-issue/268359/3 "2023-06-14T21:07:08Z")

</div>

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

---

<div class="post-metadata">

### Author: ![SouperC](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/souperc/32/62875_2.png) [@SouperC](https://meta.discourse.org/u/SouperC)
#### Post date: [14 Giugno 2023, 9:37pm UTC](https://meta.discourse.org/t/site-down-upgrade-rebuild-failure-db-migration-issue/268359/4 "2023-06-14T21:37:48Z")

</div>

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](https://global.discourse-cdn.com/meta/original/4X/c/9/0/c90ada25cb59fc1a099727fc7069c8a28c08e48e.png)

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [15 Giugno 2023, 12:46am UTC](https://meta.discourse.org/t/site-down-upgrade-rebuild-failure-db-migration-issue/268359/5 "2023-06-15T00:46:22Z")

</div>

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

```plaintext
./launcher start app
./launcher enter app

```

Prima di `sudo postgres`

Modifica: oh, sei entrato nel container.

Quel `postgres -c` ha bisogno di `sudo` prima.

---

<div class="post-metadata">

### Author: ![SouperC](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/souperc/32/62875_2.png) [@SouperC](https://meta.discourse.org/u/SouperC)
#### Post date: [15 Giugno 2023, 1:33am UTC](https://meta.discourse.org/t/site-down-upgrade-rebuild-failure-db-migration-issue/268359/6 "2023-06-15T01:33:43Z")

</div>

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.

 ![image](https://global.discourse-cdn.com/meta/original/4X/a/7/2/a72e08999af09bc2ba6f0e763e8312bcf65aa11f.png)

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

/edit… è solo racerx. MALEDIZIONE RACERX!

![image](https://global.discourse-cdn.com/meta/original/4X/5/4/e/54ede9f50cdabc5ffaa055a95e7d49a96e7d5149.png)

---

<div class="post-metadata">

### Author: ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)
#### Post date: [15 Giugno 2023, 9:22am UTC](https://meta.discourse.org/t/site-down-upgrade-rebuild-failure-db-migration-issue/268359/7 "2023-06-15T09:22:19Z")

</div>

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 🙂

---

<div class="post-metadata">

### Author: ![Simon\_Manning](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/simon_manning/32/198596_2.png) [@Simon\_Manning](https://meta.discourse.org/u/Simon_Manning)
#### Post date: [15 Giugno 2023, 10:23am UTC](https://meta.discourse.org/t/site-down-upgrade-rebuild-failure-db-migration-issue/268359/8 "2023-06-15T10:23:07Z")

</div>

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.)

```sql
SELECT id FROM users WHERE username_lower = 'racerx2';

```

Una volta che hai un username non utilizzato, ottieni gli ID degli account duplicati di `racerx`:

```sql
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.)

```sql
UPDATE users SET username_lower = 'racerx2' WHERE id = 12345;

```

---

<div class="post-metadata">

### Author: ![SouperC](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/souperc/32/62875_2.png) [@SouperC](https://meta.discourse.org/u/SouperC)
#### Post date: [19 Giugno 2023, 12:57pm UTC](https://meta.discourse.org/t/site-down-upgrade-rebuild-failure-db-migration-issue/268359/9 "2023-06-19T12:57:51Z")

</div>

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

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [19 Luglio 2023, 12:58pm UTC](https://meta.discourse.org/t/site-down-upgrade-rebuild-failure-db-migration-issue/268359/10 "2023-07-19T12:58:49Z")

</div>

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