У меня вчера был похожий случай (см. Help! Upgrade led to complete fail - #8 by Judith). Если говорить в общих чертах, вам, вероятно, нужно сделать следующее:
- переименовать postgres_data _old обратно в postgres_data
- перезапустить старый контейнер
- исправить проблему с повреждённым индексом, переименовав дублирующихся пользователей (возможно, тех, у кого дубликаты возникли из-за разного регистра)
- перестроить индексы в таблице пользователей, чтобы убедиться, что все исправлено
- переключиться на шаблон PostgreSQL 12, как описано в обновлении PostgreSQL 13
- выполнить пересборку для обновления
- когда это заработает, можно вернуть шаблон обратно и завершить обновление.
- обратите внимание, что нужно обновить не только username, но и username_lower
Случай, который я исправлял вчера, содержал дубликат имени пользователя, существовавший ещё с февраля 2020 года, поэтому, скорее всего, вы не захотите пытаться исправить это путём восстановления более старой базы данных.
Чтобы исправить проблему, нужно понимать, как изменять записи через командную строку PostgreSQL, перестраивать базы данных и справляться со сложными, но хорошо документированными проблемами при обновлении до PostgreSQL 13.
Если у вас есть бюджет в размере 500 долларов, вы можете связаться со мной. Мои контактные данные указаны в моём профиле.