J’ai eu ce que je pense être un cas similaire hier (voir Help! Upgrade led to complete fail - #8 by Judith). En gros, je pense que vous devez faire quelque chose comme :
- renommer postgres_data _old en postgres_data
- redémarrer l’ancien conteneur
- corriger le problème d’index corrompu en renommant les utilisateurs en double (ou peut-être les utilisateurs en double parce qu’ils ont une capitalisation différente)
- reconstruire les index sur la table users pour s’assurer qu’ils sont tous corrigés
- passer au modèle PostgreSQL 12 tel que décrit dans Mise à jour PostgreSQL 13
- reconstruire pour effectuer la mise à niveau
- une fois que cela fonctionne, vous pouvez revenir au modèle précédent et terminer la mise à niveau.
- notez que vous devez mettre à jour non seulement le nom d’utilisateur, mais aussi username_lower
Celui que j’ai corrigé hier avait un nom d’utilisateur en double remontant à février 2020, il est donc probable que vous ne souhaitiez pas essayer de résoudre ce problème en restaurant une base de données plus ancienne.
Pour le corriger, vous devez savoir comment modifier des enregistrements avec la ligne de commande postgres, reconstruire des bases de données et gérer des problèmes complexes, mais bien documentés, liés à la mise à niveau vers PostgreSQL 13.
Si vous avez un budget de 500 $, vous pouvez me contacter. Mes coordonnées se trouvent dans mon profil.