升级问题:由于重复键导致升级失败,快照恢复失败

我昨天遇到一个我认为类似的情况(参见 Help! Upgrade led to complete fail - #8 by Judith

  • 将 postgres_data_old 重命名为 postgres_data
  • 重启旧容器
  • 通过重命名重复的用户(或者那些因大小写不同而被视为重复的用户)来修复损坏的索引问题
  • 在 users 表上重建索引,确保所有索引都已修复
  • 按照 PostgreSQL 13 更新 中的说明切换到 PostgreSQL 12 模板
  • 重新构建以完成升级
  • 成功后,你可以将模板改回并继续完成升级
  • 请注意,你不仅需要更新用户名,还需要更新 username_lower

我昨天修复的那个案例中,存在一个可追溯到 2020 年 2 月的重复用户名,因此你可能不想通过恢复旧数据库来解决这个问题。

要解决这个问题,你需要了解如何使用 PostgreSQL 命令行修改记录、重建数据库,并处理 PostgreSQL 13 升级过程中复杂但有详细文档说明的问题。

如果你有 500 美元的预算,可以联系我。我的联系方式在我的个人资料中。