天天看點

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 這個修改為你的域名即可