我有一个外部数据库,版本是 16.3,还有一个 web_only 容器,里面是 PostgreSQL 15.12。在备份时出现错误,如何解决版本问题?
谢谢。
请在此处发送错误,并使用三个反引号(```)进行格式化。
谢谢!
[2025-05-08 03:32:20] 'system' 已启动备份!
[2025-05-08 03:32:20] 正在将备份标记为运行中...
[2025-05-08 03:32:20] 正在确保 '/var/www/discourse/tmp/backups/default/2025-05-08-033220' 存在...
[2025-05-08 03:32:20] 正在确保 '/var/www/discourse/public/backups/default' 存在...
[2025-05-08 03:32:20] 正在更新元数据...
[2025-05-08 03:32:20] 正在转储数据库的公共模式...
[2025-05-08 03:32:20] pg_dump:错误:由于服务器版本不匹配而中止
[2025-05-08 03:32:20] pg_dump:详细信息:服务器版本:16.3;pg_dump 版本:15.12 (Debian 15.12-1.pgdg120+1)
[2025-05-08 03:32:20] 异常:pg_dump 失败
[2025-05-08 03:32:20] /var/www/discourse/lib/backup_restore/backuper.rb:173:in dump_public_schema```
也许是因为我记得 Discourse 支持高达 Postgres 15?
也许也是因为两个数据库版本不相同(一个是 16,另一个是 15)?
我很确定问题在于你的数据库是 16 版本,而 Discourse 使用的是 PG15 工具。你需要进入容器并切换到 PG16 工具。
长期的解决方案是在你的 app.yml 中添加代码,以便在构建新容器时升级 PG 工具。
我以前为某人做过这件事,但现在不为他们工作了,也找不到我的代码。
你可以搜索“如何升级到 PG16”,然后在容器内执行。然后,你需要在 app.yml 中添加内容,以便在重建时执行此操作。
2 个赞
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.