Skip to content
xiaowu edited this page May 14, 2024 · 16 revisions

通用升级步骤

升级分为两步, 数据库变更和服务更新, 以 Release v1.3.8 升级为 Release v1.5.0 为例

执行数据库变更脚本(请注意数据备份)

脚本文件地址: init_sql
需要执行当前版本至目标版本之间的所有数据库变更脚本

v1.3.8_v1.4.0.sql
v1.4.2_v1.4.3.sql
v1.4.3_v1.4.5.sql
v1.4.5_v1.5.0.sql

更新服务

Docker 安装

  1. 使用 docker compose -f docker-compose.yml down 停止旧版本服务, 删除旧版本服务使用的所有 docker 镜像
  2. 下载对应 Release 版本的压缩包: Releases
  3. 对比 src/docker-compose 文件夹, 按照最新配置进行调整, 注意务必更新 settings.py 文件, 否则可能无法启动
  4. 更改 archery 的镜像地址为你想要的地址, 镜像的地址可以从以下的地方找到: dockerhub, github packages 确认配置没问题后使用 docker compose -f docker-compose.yml up -d 启动新版本服务
  5. 执行数据库升级脚本, 跨多版本升级时需要执行当前版本至目标版本之间的所有数据库变更脚本(实际升级时注意替换文件名【如无需数据库升级,5 & 6可跳过】)
    docker exec -it archery /bin/bash
    source /opt/venv4archery/bin/activate
    python manage.py dbshell < src/init_sql/v1.3.8_v1.4.0.sql
    python manage.py dbshell < src/init_sql/v1.4.2_v1.4.3.sql
    python manage.py dbshell < src/init_sql/v1.4.3_v1.4.5.sql
    python manage.py dbshell < src/init_sql/v1.4.5_v1.5.0.sql
    
  6. 应用数据库变更 python manage.py migrate
  7. 使用 docker-compose -f docker-compose.yml restart 重新启动服务

手动部署

  1. 下载对应 Release 版本的压缩包: Releases
  2. 按照配置文件的说明修改相关配置: 修改配置
  3. 重新安装依赖, 以免存在依赖变更pip install -r requirements.txt
  4. 应用数据库变更 python manage.py migrate
  5. 重新启动服务: 启动

注意事项

  1. 请阅读每个 Release 版本的说明, 部分版本升级会有额外注意事项
  2. v1.8.0 升级了 Django 版本, 请仔细阅读 Release 说明 releases/tag/v1.8.0
  3. v1.7.1 版本升级统一了加密方式, 请仔细阅读 Release 说明 releases/tag/v1.7.1
  4. v1.6.1 之前 JS 文件没有做版本控制, 所以如果当前版本涉及 JS 文件的修改, 则需要清空浏览器缓存才可以正常使用
  5. v1.4.0 中增加了新的 app, django_q, 在服务部署完成后需要执行 python3 manage.py migrate 初始化数据, v1.4.0 以上的版本升级无需该操作
  6. v1.8.2 注意docker-compse.yml文件中,镜像的tag号需要调整为v1.8.2或者lastest,之前tag号,没有字母v