Problemas de atualização: Falha na atualização devido a chave duplicada, falha na restauração do snapshot

Eu tive o que acredito ser um caso semelhante ontem (veja Help! Upgrade led to complete fail - #8 by Judith). De forma geral, acho que você precisa fazer algo como:

  • renomear o postgres_data _old de volta para postgres_data
  • reiniciar o container antigo
  • corrigir o problema de índice corrompido renomeando os usuários duplicados (ou talvez usuários que são duplicados porque têm capitalização diferente)
  • reconstruir os índices na tabela de usuários para garantir que todos estejam corrigidos
  • mudar para o template do PostgreSQL 12 conforme descrito em Atualização do PostgreSQL 13
  • reconstruir para atualizar
  • quando isso funcionar, você pode mudar o template de volta e finalizar a atualização.
  • observe que você precisa atualizar não apenas o nome de usuário, mas também o username_lower

O caso que corrigi ontem tinha um nome de usuário duplicado datado de fevereiro de 2020, então provavelmente você não vai querer tentar corrigir isso restaurando um banco de dados mais antigo.

Para corrigir, você precisa saber como modificar registros pela linha de comando do postgres, reconstruir bancos de dados e lidar com problemas complexos, mas bem documentados, na atualização para o PostgreSQL 13.

Se você tiver um orçamento de US$ 500, pode entrar em contato comigo. Meus dados de contato estão no meu perfil.