update.rst 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. ========
  2. 版本升级
  3. ========
  4. ------------
  5. r0.1.x-r0.2.x
  6. ------------
  7. 从r0.1.x-r.2.x升级。需要一些DDL操作
  8. - workflow.models.Transition新增字段timer,新增字段attribute_type_id,condition_expression
  9. - ticket.modles.TicketRecord新增script_run_last_result字段,新增is_end字段,新增is_rejected字段,新增multi_all_person字段
  10. - 删除ticket.modles.TicketStateLastMan
  11. - workfow.models.State新增remember_last_man_enable字段
  12. - account.models.AppToken新增字段workflow_ids字段,用于给每个app授权可以访问的工作流资源(对应工作及对应的工单,升级后需要修改此配置).新增ticket_sn_prefix字段,用于支持配置工单流水号前缀
  13. - workflow.models.Workflow新增字段limit_expression,用于新建工单权限的限制
  14. - workflow.models.workflow新增字段notices,用于关联通知方式
  15. - workflow.models新增表CustomNotice 用于支持自定义通知方式
  16. - workflow.models.CustomField新增label字段用于调用方自行扩展
  17. ------------
  18. r0.2.x-r0.3.x
  19. ------------
  20. - 因为v0.3版本中username参数改成从header中获取,所以接口调用时需要将username通过header方式传递
  21. - 为了脚本安全考虑,当状态的参与人类型为脚本时,参与人需要设置为脚本记录的id。 迁移时需要将这些状态的参与人从脚本名称改成脚本记录的id
  22. --------------
  23. r0.3.x-r1.0.x
  24. --------------
  25. 0. 如果你对升级过程不熟悉,强烈建议你将生产环境数据(数据库)导入到测试环境,按照下面的操作演练过且没问题后再在生产环境操作
  26. 1. 准备好通知的hook服务端(如果你当前有用到通知脚本,你需要改成hook方式,如果没用到通知功能,可忽略此步)
  27. 准备好通知的hook的服务端(可以在服务端提供短信、钉钉、企业微信、邮件等通知服务),服务端给loonflow分配一个token用于生签名,服务器端以此token使用相同的算法生成签名用于校验loonflow。校验通过后根据hook请求的数据来发送通知消息。
  28. 2. 下载loonflow v1.0.x版本到新的服务器或者新的目录
  29. 3. 将0.3.x版本的media目录下目录及文件全部复制到v1.0.x版本的media目录下
  30. 4. 创建新的python3.6虚拟环境,并安装好requirement/pro.txt中的依赖
  31. 5. 停止调用方服务
  32. 6. 停止loonflow 0.3版本服务(包括web服务及task任务,task任务可优雅停止,命令:xxxx)
  33. ::
  34. celery multi stopwait -A tasks worker -l info -c 8 -Q loonflow --logfile=xxx.log --pidfile=xxx.pid
  35. 7. 备份好0.3.x版本数据库(为了在发现问题时快速回退)
  36. 8. 执行升级sql
  37. ::
  38. https://github.com/blackholll/loonflow-helper/tree/master/update/0.3.xto1.0.x/ddl.sql
  39. https://github.com/blackholll/loonflow-helper/tree/master/update/0.3.xto1.0.x/dml.py ## 将文件中的数据库配置修改为你的0.3.x版本使用的数据库
  40. 9. 将代码中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,观察是否有报错,排查错误
  41. 10. 访问http://$serverip:9999, 在“工作流管理”-“通知管理”中新增好需要用到的通知
  42. 11. 访问http://$serverip:9999,在“工作流管理”--“工作流配置”中逐个编辑需要发送通知的工作流,选择对应的通知,并设置标题模板和通知模板
  43. 12. 修改config.py中的DEBUG参数=False,使用uwsgi+nginx启动loonflow r1.0.x,
  44. 13. 启动task服务
  45. 14. 启动调用方服务
  46. --------------
  47. r1.0.x-r2.0.x
  48. --------------
  49. 待提供