面向自托管用户的 PostgreSQL 18 更新

升级脚本会检查可用空间,仅在安全的情况下才会继续执行。

在升级过程中有两个步骤可能会面临磁盘空间不足的问题。如果您绕过可用空间检查,就可能会在此处遇到问题:

  1. 运行 pg_dump 从旧数据库提取数据时(此时需要 2 倍于数据库大小的存储空间)。
  2. 运行 pg_restore 将数据插入新数据库时(此时需要 3 倍于数据库大小的存储空间)。

要从此状态恢复,您需要删除 /shared/postgres_dump/shared/postgres_data_new

请注意,在升级结束时,我们会删除临时的 pg_dump 文件,但会保留升级前的数据库数据于 /shared/postgres_data_old 中,以防万一。一旦您确认一切正常运行,您可能希望删除该目录以释放磁盘空间。

我测试了在 PG15 站点上创建 Discourse 备份,然后将其恢复到 PG18 站点上。这对我有效,但请注意,这不是官方支持的方法。请先在非生产环境中进行彻底测试,并确保您有回滚方案!

我建议您研究升级脚本使用的流程。如果您有特殊的存储需求,应该能够将其调整为适合您的需求。同样,请先进行测试:

是的,这已经 集成到 discourse_docker 中。如果您拉取 main 分支或运行 ./launcher rebuild app,您将获得此功能。

如果您想推迟升级,将 discourse_docker 从 main 分支切换出去可以 帮助防止意外升级

3 个赞