天天看点

SQL审核查询平台Archery升级到v1.9.1踩坑之路

作者:运维笔谈
SQL审核查询平台Archery升级到v1.9.1踩坑之路

SQL审核查询平台Archery,当前使用的版本是v1.8.5,目前最新的版本是v1.9.1,找了个时间打算升级到最新的版本。Archery满足大部分mysql的查询执行备份归档等等,还能支持clickhouse的查询。

SQL审核查询平台Archery升级到v1.9.1踩坑之路

升级准备

下载Archery最新release版本,https://github.com/hhyo/Archery/releases/tag/v1.9.1,假如网络环境不好,也可以使用https://gitee.com/rtttte/Archery/archive/refs/tags/v1.9.1.zip

下载完成之后,解压到服务器上显示的文件夹是Archery-v1.9.1

停止服务,并且备份

当前我们Archery是docker-compose的方式运行的,在升级之前需要先停止服务,到部署Archery的目录下执行docker-compose down关掉正在运行的archery服务。然后新建一个backup目录,把当前archery目录,inception目录,mysql目录(重要)以及docker-compose.yml文件复制或者移动到backup目录下。

升级

到Archery-v1.9.1/src/docker-compose下复制archery目录,inception目录,mysql目录,docker-compose.yml以及隐藏文件.env到archery(运行服务的主目录)下。

由于跨版本升级,可能不单单是服务更新,还会涉及到数据库的变更。我们先查看下Archery-v1.9.1/src/init_sql目录,果然有v1.9.0.sql这个文件,说明v1.8.5升级到v1.9.1有数据库相关的变更。

我们启动Archery服务:docker-compose up -d

然后执行如下语句

docker exec -it archery /bin/bash
source /opt/venv4archery/bin/activate
python manage.py dbshell < src/init_sql/v1.9.0.sql           

进行数据库变更,执行 python manage.py migrate

最后重启下Archery服务,docker-compose restart

升级之后验证登录,踩坑了

升级之后,浏览器输入Archery的域名进行访问,提示登录失败,这是什么情况?再次阅读了v1.9.0的变更说明,django4.0开始新增了origin host检查,然后顺便搜索了下issue也有人遇到和我一样的情况https://github.com/hhyo/Archery/issues/2174。

SQL审核查询平台Archery升级到v1.9.1踩坑之路

解决方法

修改下和docker-compose.yml同级的 .env文件里配置

把CSRF_TRUSTED_ORIGINS=http://127.0.0.1:9123 这个修改为你的域名即可