版本升级、回滚与备份

用 releases/current 结构安全升级,先备份数据库再切换版本。

DJM CMS 的发布目录采用 releases/<版本> 加 current 软链接的结构。升级时新增一个版本目录,验证通过后再切换软链接,回滚只需要把链接切回去。

1. 升级前备份

  • 数据库:使用 CMS 后台备份、云数据库快照或 mysqldump。
  • 文件:至少备份 shared/configs、shared/storage、shared/themes、shared/plugins。
  • 记录当前版本:./current/bin/cms version。

2. 下载并解压新版本

cd /tmp
curl -fSL -o update.zip \
  "https://cloud.duojumi.com/api/public/v1/cms/releases/1.0.153/download?channel=stable&os=linux&arch=amd64"
unzip -q update.zip -d update
mv update/releases/1.0.153 /www/wwwroot/cms.example.com/releases/

3. 切换版本

cd /www/wwwroot/cms.example.com
ln -sfn releases/1.0.153 current
chown -R www:www releases/1.0.153
source shared/configs/runtime.env
./current/bin/cms doctor

doctor 会检查数据库连接、迁移、主题与目录结构。确认无问题后,在宝塔 Go 项目里重启服务。

4. 验证

curl -fsS http://127.0.0.1:23280/health/ready
curl -fsS https://cms.example.com/ | head -5

再走一遍登录后台、打开列表与详情、保存一篇内容,确认写入链路正常。

5. 回滚

cd /www/wwwroot/cms.example.com
ln -sfn releases/1.0.118 current
# 在宝塔 Go 项目里重启服务
./current/bin/cms version

如果新版本已经执行了不可逆迁移,回滚前需要先恢复对应数据库备份。生产环境升级前建议在预发站点完整验证主题、插件和自定义模板。

讨论

发表评论