版本升级

r0.1.x-r0.2.x

从r0.1.x-r.2.x升级。需要一些DDL操作

  • workflow.models.Transition新增字段timer,新增字段attribute_type_id,condition_expression

  • ticket.modles.TicketRecord新增script_run_last_result字段,新增is_end字段,新增is_rejected字段,新增multi_all_person字段

  • 删除ticket.modles.TicketStateLastMan

  • workfow.models.State新增remember_last_man_enable字段

  • account.models.AppToken新增字段workflow_ids字段,用于给每个app授权可以访问的工作流资源(对应工作及对应的工单,升级后需要修改此配置).新增ticket_sn_prefix字段,用于支持配置工单流水号前缀

  • workflow.models.Workflow新增字段limit_expression,用于新建工单权限的限制

  • workflow.models.workflow新增字段notices,用于关联通知方式

  • workflow.models新增表CustomNotice 用于支持自定义通知方式

  • workflow.models.CustomField新增label字段用于调用方自行扩展

r0.2.x-r0.3.x

  • 因为v0.3版本中username参数改成从header中获取,所以接口调用时需要将username通过header方式传递

  • 为了脚本安全考虑,当状态的参与人类型为脚本时,参与人需要设置为脚本记录的id。 迁移时需要将这些状态的参与人从脚本名称改成脚本记录的id

r0.3.x-r1.0.x

  1. 如果你对升级过程不熟悉,强烈建议你将生产环境数据(数据库)导入到测试环境,按照下面的操作演练过且没问题后再在生产环境操作

  2. 准备好通知的hook服务端(如果你当前有用到通知脚本,你需要改成hook方式,如果没用到通知功能,可忽略此步)

准备好通知的hook的服务端(可以在服务端提供短信、钉钉、企业微信、邮件等通知服务),服务端给loonflow分配一个token用于生签名,服务器端以此token使用相同的算法生成签名用于校验loonflow。校验通过后根据hook请求的数据来发送通知消息。

  1. 下载loonflow v1.0.x版本到新的服务器或者新的目录

  2. 将0.3.x版本的media目录下目录及文件全部复制到v1.0.x版本的media目录下

  3. 创建新的python3.6虚拟环境,并安装好requirement/pro.txt中的依赖

  4. 停止调用方服务

  5. 停止loonflow 0.3版本服务(包括web服务及task任务,task任务可优雅停止,命令:xxxx)

celery multi stopwait -A tasks worker -l info -c 8 -Q loonflow --logfile=xxx.log --pidfile=xxx.pid
  1. 备份好0.3.x版本数据库(为了在发现问题时快速回退)

  2. 执行升级sql

https://github.com/blackholll/loonflow-helper/tree/master/update/0.3.xto1.0.x/ddl.sql
https://github.com/blackholll/loonflow-helper/tree/master/update/0.3.xto1.0.x/dml.py   ## 将文件中的数据库配置修改为你的0.3.x版本使用的数据库
  1. 将代码中settings/pro.py中复制并重命名为settings/config.py,将config.py中数据库就redis配置修改为当前使用的地址,临时修改config.py中的DEBUG参数=True,进入新的虚拟环境尝试使用python manage.py runserver 0.0.0.0:9999 启动loonflow 1.0.x,观察是否有报错,排查错误

  2. 访问http://$serverip:9999, 在“工作流管理”-“通知管理”中新增好需要用到的通知

  3. 访问http://$serverip:9999,在“工作流管理”–“工作流配置”中逐个编辑需要发送通知的工作流,选择对应的通知,并设置标题模板和通知模板

  4. 修改config.py中的DEBUG参数=False,使用uwsgi+nginx启动loonflow r1.0.x,

  5. 启动task服务

  6. 启动调用方服务

r1.0.x-r2.0.x

待提供