由于一系列不幸的事件,我似乎无法从最新的完整备份中恢复。
完整故事稍后公布,但目前我在执行备份恢复时遇到了以下错误:
正在迁移数据库…
异常:rake db:migrate
数据库迁移失败。
rake 终止!
StandardError:发生错误,本次及后续所有迁移均已取消:(StandardError)
PG::DuplicateTable:错误:关系“gamification_leaderboard_scores”已存在
这似乎是我的插件导致的问题,但我希望能得到一些帮助,以便解读日志并找到解决方案,让恢复能够顺利进行。
总之,事情是这样的。
今天早些时候,我执行了一次 Discourse 更新,将其升级到 2026.5.0-latest b0873d3ecd 版本。该更新引入了一些破坏性变更,导致我的 主主题 无法正常工作。我本应在更新前检查兼容性。
在慌乱中,我以为可以从最后一次备份中恢复,以回退到与主题兼容的 Discourse 版本。在恢复之前,我确实做了一个完整备份,心想如果出现问题,尽可能多地保留恢复点总是好的。
然而,在第一次恢复过程中出现了问题,Discourse 重新上线后丢失了最近 15 天的内容。进一步调查后,我找到了一个 Meta 上的主题,其中建议将备份文件从 2026-04-28-033449-v20260420014648.sql.gz 重命名为 2026-04-28-033449-v20260407093145.sql.gz。我不确定为什么这样做有效,但至少让我恢复到了昨天的备份。
我仍然需要恢复今天早上进行的最后一次完整备份,也就是顶部所示报错的那个备份。