【1.7.13】环境说明:docker安装,路径为/opt/src/Archery
因为之前升级的时候也找了网上很多的资料,发现完整升级步骤的很少,所以将升级成功的步骤放上来,但还是建议正式升级之前在相同的测试环境先测试一下步骤
1、上传安装包并解压
cd /opt/src
–上传压缩包Archery-1.9.1.tar.gz并解压
tar -zxvf Archery-1.9.1.tar.gz
2、【1.7.13】相关镜像卸载
把archery inception goinception 相关的镜像删除了,其他的不要动
docker ps -a
docker stop
docker rm
docker images
docker rmi
3、参数修改
①settings.py修改,将之前【1.7.13】的配置文件移动过来
cd /opt/src/Archery-1.9.1/src/docker-compose/archery
mv settings.py settings.pybak
cd /opt/src/Archery/src/docker-compose/archery
cp settings.py /opt/src/Archery-1.9.1/src/docker-compose/archery
cd /opt/src/Archery-1.9.1/src/docker-compose/archery
vi settings.py
最后添加
REST_FRAMEWORK = {
“DEFAULT_SCHEMA_CLASS”: “drf_spectacular.openapi.AutoSchema”,
“DEFAULT_RENDERER_CLASSES”: (“rest_framework.renderers.JSONRenderer”,),
# 鉴权
“DEFAULT_AUTHENTICATION_CLASSES”: (
“rest_framework_simplejwt.authentication.JWTAuthentication”,
“rest_framework.authentication.SessionAuthentication”,
),
# 权限
“DEFAULT_PERMISSION_CLASSES”: (“sql_api.permissions.IsInUserWhitelist”,),
# 限速(anon:未认证用户 user:认证用户)
“DEFAULT_THROTTLE_CLASSES”: (
“rest_framework.throttling.AnonRateThrottle”,
“rest_framework.throttling.UserRateThrottle”,
),
“DEFAULT_THROTTLE_RATES”: {“anon”: “120/min”, “user”: “600/min”},
# 过滤
“DEFAULT_FILTER_BACKENDS”: (“django_filters.rest_framework.DjangoFilterBackend”,),
# 分页
“DEFAULT_PAGINATION_CLASS”: “rest_framework.pagination.PageNumberPagination”,
“PAGE_SIZE”: 5,
}
②docker-compose.yml修改
vi /opt/src/Archery-1.9.1/src/docker-compose/docker-compose.yml
把mysql redis相关的删除了
将
- “./archery/settings.py:/opt/archery/local_settings.py”
修改为(这个是根据【1.7.13】的配置文件修改的)
- “./archery/settings.py:/opt/archery/archery/settings.py”
将下面的添加到最后两行
environment:
NGINX_PORT: 9123
③将之前1.7.13的配置文件移动过来
cd /opt/src/Archery-1.9.1/src/docker-compose/mysql
mv my.cnf my.cnfbak
cd /opt/src/Archery/src/docker-compose/mysql
cp my.cnf /opt/src/Archery-1.9.1/src/docker-compose/mysql
cd /opt/src/Archery-1.9.1/src/docker-compose/inception
修改config.toml参数
根据官方文档修改:https://hanchuanchuan.github.io/goInception/zh/
4、开始升级-------------------------------------------------
1、安装镜像
cd /opt/src/Archery-1.9.1/src/docker-compose
docker-compose -f docker-compose.yml up -d
2min左右
2、sql执行
docker exec -it archery /bin/bash
source /opt/venv4archery/bin/activate
①python manage.py dbshell < src/init_sql/v1.7.1_v1.7.2.sql
②python manage.py dbshell < src/init_sql/v1.7.2_v1.7.3.sql
会报错,解决方式:
进入archery的数据库,单独执行SQL
– SQL上线工单增加需求链接
ALTER TABLE sql_workflow modify demand_url varchar(500) NOT NULL DEFAULT ‘’ COMMENT ‘需求链接’;
– 增加事务查看权限
set @content_type_id=(select id from django_content_type where app_label=‘sql’ and model=‘permission’);
INSERT IGNORE INTO auth_permission (name, content_type_id, codename) VALUES (‘查看事务信息’, @content_type_id, ‘trx_view’);
③python manage.py dbshell < src/init_sql/v1.7.4_v1.7.5.sql
会报错,解决方式:
进入archery的数据库,单独执行SQL
ALTER TABLE archive_config RENAME TO archive_config20230130;
ALTER TABLE archive_log RENAME TO archive_log20230130;
python manage.py dbshell < src/init_sql/v1.7.4_v1.7.5.sql
④python manage.py dbshell < src/init_sql/v1.7.6_v1.7.7.sql
会报错,解决方式:
进入archery的数据库,单独执行SQL
ALTER TABLE sql_users_resource_group modify users_id int(11) NOT NULL COMMENT ‘用户’;
ALTER TABLE sql_users_resource_group modify resourcegroup_id int(11) NOT NULL COMMENT ‘资源组’;
ALTER TABLE sql_instance_resource_group modify resourcegroup_id int(11) NOT NULL COMMENT ‘资源组’;
ALTER TABLE sql_instance_instance_tag modify instancetag_id int(11) NOT NULL COMMENT ‘关联标签ID’;
ALTER TABLE sql_instance modify db_name
VARCHAR(64) NOT NULL DEFAULT ‘’ COMMENT ‘数据库’;
⑤python manage.py dbshell < src/init_sql/v1.7.7_v1.7.8.sql
会报错,解决方式:
进入archery的数据库,单独执行SQL
alter table sql_users modify feishu_open_id varchar(64) not null default ‘’ comment ‘飞书OpenID’;
alter table resource_group modify feishu_webhook varchar(255) not null default ‘’ comment ‘飞书webhook地址’;
⑥python manage.py dbshell < src/init_sql/v1.8.3.sql
⑦python manage.py dbshell < src/init_sql/v1.8.4.sql
⑧python manage.py dbshell < src/init_sql/v1.9.0.sql
5、应用SQL变更
python manage.py migrate
2min左右
6、重新启动
docker-compose -f docker-compose.yml restart
登录检查
升级完成!