版本升级、回滚与备份

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

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

1. 升级前备份

  • 数据库:SQLite 复制 storage/database/djm.sqlite;MySQL 使用数据库自带备份工具。也可以在后台执行 SQLite 备份。
  • 文件:至少备份 shared/configs、shared/storage、shared/themes、shared/plugins。
  • 记录当前版本:./current/bin/cms version。
mkdir -p /root/backup
cp shared/storage/database/djm.sqlite /root/backup/djm-$(date +%F).sqlite
tar -czf /root/backup/shared-$(date +%F).tar.gz shared/configs shared/storage shared/themes shared/plugins

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
export DJM_CONFIG=$PWD/shared/configs/app.yaml
./current/bin/cms doctor

doctor 会检查连接、主题与目录结构。SQLite 模式下迁移检查仍会输出 MySQL 专用的 information_schema 警告,可忽略;以 /health/ready 和页面访问为准。确认无问题后,在宝塔 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

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

继续阅读

安装部署 升级后自动重启:systemd 与脚本托管配置 安装部署 让 AI 帮你部署 DJM CMS 安装部署 SQLite 部署与备份:安装时选择单文件数据库 安装部署 宝塔面板部署 DJM CMS:数据库可选、Nginx 与进程守护 安装部署 反向代理、HTTPS 与健康检查

讨论