坦白说,我很久很久没有对我们自托管的 Discourse 安装进行任何手动维护了,而且最初是由别人搭建的。
我需要更改我的 SMTP 凭据,因为 SendGrid 要求从基本认证迁移到 API 密钥。
我找到了这份文档:Discourse 推荐邮件服务商
其中提到:
若要更改当前的邮件服务,请同时运行
./discourse-setup(这将在论坛重建期间使其离线几分钟)。
我运行了该命令,按预期回答了问题,随后在标准输出中产生了约 2,000 行输出,最后以以下内容结束:
升级完成
----------------
pg_upgrade 不会传输优化器统计信息,因此,
一旦启动新服务器,请考虑运行:
./analyze_new_cluster.sh
运行此脚本将删除旧集群的数据文件:
./delete_old_cluster.sh
-------------------------------------------------------------------------------------
Postgres 升级完成
旧版 10 数据库存储在 /shared/postgres_data_old
要完成升级,请再次使用以下命令重建:
./launcher rebuild app
-------------------------------------------------------------------------------------
cfd4df26701b4b4cd4a4202f30a9c8165a1ba609c921bffc25f250f52fee6cbe
当时我并没有预料到这会“升级”任何东西。我只是想更改 SMTP 凭据。但网站并没有自动恢复运行,于是我按照提示“完成升级”,运行了:
./launcher rebuild app
这又触发了约 8,000 行标准输出。网站最终恢复了,但看起来不一样了:
- 我的标志消失了,被替换为“Discourse”标志。
- 用户头像图片损坏。不过后来这些头像又自动恢复正常了。
- 帖子中的图片和分类标志损坏。这些目前仍未恢复。我在
./discourse/share目录以及我们的 S3 存储桶(URL 期望找到它们的位置)中查找了匹配文件名的图片,但并未找到。 - 我之前已从“最新”页面隐藏的支持类别帖子,现在又出现在该页面上了。
- 我的“支持”类别在“分类”页面上已不可见。
- “分类”页面现在变为两列布局,左侧是分类,右侧是“最新”。我印象中之前只是分类列表。
+ 新主题按钮中+的颜色从白色变成了灰色。
此时我怀疑某些配置丢失了,但所有帖子都完好无损。我推测 Discourse 可能自动进行了升级(我不清楚之前是哪个版本,可能跨越了多个版本),导致一些底层默认设置、CSS、模板等发生了变化,从而引发了上述问题。
查看源代码后,我发现当前版本是 2.6.0.beta6,该版本似乎仅在 7 天前发布。
因此,我的问题如下:
- 为了应用像更改 SMTP 凭据这样简单的设置更改,是否必须像这样完全升级软件?
- 如何在不升级整个软件的情况下更改设置或应用安全更新?
- 我的图片在哪里?或者为什么它们的 URL 发生了某种变化,导致无法访问?
- 有没有办法回滚,同时不丢失自事件发生以来的新帖子?我甚至不知道我们之前运行的是哪个版本。我在 S3 上有 Discourse 备份(只是一个 gzip 压缩的 SQL 转储文件)。
- 我是否只需手动检查所有设置和自定义项,以修复诸如
+ 新主题按钮颜色、隐藏/显示的“支持”类别等问题?
我原以为我们一直在对托管 Discourse 的 EC2 卷进行 EBS 快照,但后来发现并非如此。我现在已启用快照,以便未来必要时可以这样回滚。
谢谢。