开源 CMS 同时维护两条版本线意味着什么,升级前该确认哪几件事
开源 CMS 同时维护两条版本线,直接含义是:旧主线还没有进入停维阶段,安全修复会同时下发到两支。这对站点的影响比看上去更实际——你不必因为”版本号落后一代”就立刻跨大版本升级,但也不能长期停留在旧支,因为旧支通常只接安全修复,不接功能改进与结构性变更。升级前该确认的,是三件事:备份与回退点、模板与自定义代码的兼容范围、数据脚本的执行顺序。
两条线并行说明了什么
第一,用户基数决定支持长度。同时给两支发修复,说明两支都还有可观的在用站点,官方不愿意制造”必须马上迁移”的压力。
第二,分支之间差距已经拉大。新支往往带结构性改动,例如模板机制、数据表范围或接口形态的调整,这类改动不会回补到旧支。旧支因此成为”安全但冻结”的状态。
第三,候选发布阶段是给测试者用的。以近期为例,Joomla 在 2026 年 9 月 29 日发布 6.2 的候选版本,官方说明是让大家测试最终安装包;同期两支并行发布 6.1.4 与 5.4.9 的安全与缺陷修复。这组公告合起来读,能得到的判断是:候选版属于测试通道,生产站应该跟的是正式版与安全修复版。
| 你的处境 | 合适的动作 | 不建议的动作 |
|---|---|---|
| 停在旧支,只缺安全修复 | 升同支的最新修复版 | 跨大版本求新功能 |
| 要跟新功能 | 在预发环境验证迁移后再上 | 生产站直接装候选版 |
| 定制代码多、暂时不能升 | 收敛暴露面,缩短评估周期 | 长期停在有已知漏洞的版本 |
升级前该确认的三件事
第一件是备份与回退点。数据与静态文件都要有可恢复的副本,并且要真的试过恢复,而不是只看备份任务是否成功。AnQiCMS(安企CMS)把备份与恢复做成后台能力,覆盖数据与静态文件;升级前留一个可用回退点,比事后找数据库快照可靠。
第二件是模板与自定义代码的兼容范围。跨版本升级最容易出问题的是模板层:标签行为变化、数据读取方式调整、自定义接口签名变更。判断方法是先读官方的变更说明与更新记录,确认自己动过的位置是否在被改之列。站内 v3.6.5 一次就调整了 MCP 工具层与模板备份相关的表结构,这类变更如果不看说明直接升,表现为”升级成功但后台某块打不开”。
第三件是数据脚本的执行顺序。多数系统的升级包含数据库结构变更,顺序错了会出现半升级状态:新代码读旧表,或旧代码读新表。要确认的是脚本是否幂等、失败后能否重跑,以及是否有明确的成功标志。
出问题怎么回退
回退的目标不是”回到旧版本”,而是”回到一致状态”。如果升级已经改写了表结构,只把程序换回旧版可能造成新旧混用。稳妥顺序是:先停对外写入,确认数据是否已被迁移脚本改写;未改写则回程序,已改写则连数据一起回到备份点;恢复后先做后台核心动作的验证,再逐段开回写入。
内容侧还有一项常被忽略:升级过程里处于草稿或待发布状态的内容。正式内容出问题能被立刻发现,未发布的内容出问题往往等到排期上线时才暴露。升级前后各核对一次状态列表,比只盯首页省事。站内 v3.6.6 修复了列表排序参数与站点切换登录凭证相关的高危问题,官方同时建议轮换密钥并修改管理员密码——升级之后做一次凭证轮换,属于回退预案的一部分,因为它能保证旧凭证即使被泄露也不再有效。
常见问题
问:旧支只出安全修复,还能放心用多久? 答:取决于你的暴露面。旧支不会永远收到修复,官方停维公告通常会提前给出时间点;在此之前应当完成评估,而不是等到修复停发才动手。
问:候选版能不能只在一个测试站上装? 答:可以,而且这正是它设计的用途。前提是测试站的数据是脱敏副本,避免把生产数据带进未定稿的版本。
问:升级一定要在低峰期吗? 答:涉及数据脚本的升级需要,因为中途失败的回退窗口更短;只换程序、不改结构的维护升级,风险窗口小得多。