Ieri ho avuto un caso che ritengo simile (vedi Help! Upgrade led to complete fail - #8 by Judith). In linea di massima, credo che tu debba fare qualcosa del genere:
- rinominare postgres_data _old in postgres_data
- riavviare il vecchio container
- risolvere il problema dell’indice corrotto rinominando gli utenti duplicati (o forse quelli duplicati a causa di differenze nelle maiuscole/minuscole)
- ricostruire gli indici sulla tabella users per assicurarti che siano tutti corretti
- passare al template di PostgreSQL 12 come descritto in Aggiornamento PostgreSQL 13
- ricostruire per eseguire l’aggiornamento
- quando funziona, puoi tornare al template precedente e completare l’aggiornamento.
- nota che devi aggiornare non solo il nome utente, ma anche username_lower
Quello che ho risolto ieri aveva un nome utente duplicato risalente a febbraio 2020, quindi probabilmente non vorrai tentare di risolvere il problema ripristinando un database più vecchio.
Per risolverlo, devi sapere come modificare i record tramite la riga di comando di PostgreSQL, ricostruire i database e gestire problemi complessi, ma ben documentati, nell’aggiornamento a PostgreSQL 13.
Se hai un budget di 500 $, puoi contattarmi. Le mie informazioni di contatto sono nel mio profilo.