ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Zulip 升级失败后如何回滚到之前的版本

Zulip 升级失败后如何回滚到之前的版本 Zulip 升级失败后如何回滚到之前的版本【免费下载链接】zulipZulip server and web application. Open-source team chat that helps teams stay productive and focused.项目地址: https://gitcode.com/GitHub_Trending/zu/zulip在自托管的 Zulip 服务器上执行upgrade-zulip或upgrade-zulip-from-git升级时升级可能中途失败或者新版本虽然启动完成但行为异常。这时你需要把服务切回升级前的版本。本文针对用标准安装方式部署非 Docker的 Zulip 服务器利用部署目录与符号链接机制完成回滚并给出回滚后的验证方式Docker 部署的升级流程在 升级文档 中被单独引导至 Docker 章节不适用本文步骤。回滚机制部署目录与符号链接Zulip 的升级过程会在/home/zulip/deployments/下创建一个新部署其中包含 Zulip 服务器代码的完整副本并在升级过程中移动/home/zulip/deployments/{current,last,next}这三个符号链接upgrade.md。也就是说旧版本的完整代码树一直保留在/home/zulip/deployments/中回滚只需要重新启动对应目录里的版本。注意适用范围文档明确该回滚流程面向 minor release例如从9.4回滚到9.3。如果要降级到更早的 major release需要先回滚数据库迁移那是一个更复杂的过程。先确认升级在哪里失败升级脚本是幂等的idempotent解决问题后再次执行没有危害。因此在决定回滚之前先看一下日志判断能否快速修复升级脚本的全部输出记录在/var/log/zulip/upgrade.logZulip 服务器的 Internal Server Error 记录在/var/log/zulip/errors.log。文档列出的最常见原因有两类网络问题服务器没有稳定的互联网访问或没有配置代理。修复网络后直接重跑升级即可。使用upgrade-zulip-from-git时内存刚好达到运行 Zulip 最低要求的机器容易在升级过程中出现 out-of-memory通常失败的步骤是tools/webpack。可以先停掉 Zulip 服务释放内存再跑升级./scripts/stop-server在/home/zulip/deployments/current/目录下执行完整路径见 upgrade.md 中给出的scripts/stop-server用法。如果你能定位并修复原因直接重试升级如果短时间内无法定位可修复的原因或者新版本已经启动但你判断它工作不正常就执行下面的回滚。执行回滚回滚到上一个版本即升级前的版本运行/home/zulip/deployments/last/scripts/restart-server回滚到更早的某个版本时把路径换成对应部署目录/home/zulip/deployments/DATE/scripts/restart-server其中DATE是/home/zulip/deployments/下实际存在的部署目录名查看该目录的目录列表即可找到。restart-server会停止当前正在运行的 Zulip 服务器并启动你指定部署路径对应的版本upgrade.md。副作用是服务会停止并短暂不可用然后以旧版本重新拉起。从 restart-server 脚本源码 可以看到它还会在启动前执行./manage.py check --database default做语法和数据库检查并自动把current、last符号链接指向你回滚的版本脚本要求以zulip用户身份运行以root运行时会自动切换到zulip用户。验证回滚结果脚本成功跑完会输出Zulip restarted successfully!见 restart-server 末尾。用supervisorctl status检查各服务状态全部为RUNNING表示正常。如果出现非RUNNING状态、或某服务 uptime 不足 5 秒说明它在启动后立即崩溃并反复重启先查看/var/log/zulip/errors.log如果那里没有相关日志再查该服务在/etc/supervisor/conf.d/zulip.conf中配置的stdout_logfile日志只有在服务完全启动后才会进入errors.log这一点见 troubleshooting.md。确认当前指向的版本检查/home/zulip/deployments/current/version.py中的ZULIP_VERSION它反映回滚后正在运行的版本方法来自 modify.md。浏览器访问 Zulip 服务器 URL确认页面和收发消息恢复正常。限制与后续操作该回滚只适合 minor release 之间的降级跨 major release 降级需要先回滚数据库迁移文档将其描述为更复杂的过程。回滚本身不修复问题。修复失败原因后可以直接重跑升级脚本幂等重试无副作用。如果回滚后旧版本也无法正常启动或者升级前的部署目录已经缺失文档提供的兜底路径是恢复到完整备份升级前若已用/home/zulip/deployments/current/manage.py backup生成过备份可用/home/zulip/deployments/current/scripts/setup/restore-backup /path/to/backup恢复见 export-and-import.md。【免费下载链接】zulipZulip server and web application. Open-source team chat that helps teams stay productive and focused.项目地址: https://gitcode.com/GitHub_Trending/zu/zulip创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表