modelDeployRequest
GUI的操作流程会类似git的PR, 提交一个DR请求- > 比对数据变化 (后续会反馈给gui和cli,也能用于debug) -> approve.
字段的变化也可以走这个流程
- 目前的流程先有deploy才有DR和计算出的diff, 修改字段是传入diff生成一个DR
- 在交互上支持controllor上由系统自动approve.
Table
- requester_info(json) //user_id,ip等相关,目前先往sentry抛?
- approver_info
- status //
- waiting_for_pg_approve
- pg_pending
- pg_deployed
- waiting_for_es_approve
- es_pending
- es_deployed
- expired
- model_id
- model_tableName
- model_tree
- model_tree_diff // 或者 up down
- created_at
- updated_at
- approved_at
相关方法
由内部service实现
createModelDeployRequest(model_id)
_checkUnDeployedRequests(model_id)
- yes - > expired
- no - > create (waiting_for_es_approve ) -> approveModelDeployRequest (id)
_checkUnDeployedRequests()
- 检查是否有因为其他事务挂起的部署请求
approveModelDeployRequest(id)
- waiting_for_es_approve -> es_pending
- 原始deloy流程
- getTreeFromlDeployRequestsByModelId
- 调用index的service
diffWithDatabase(id)
- 同现在数据库中的结构进行对比,返回一个json
diffWithModelDeployRequest(source_id,target_id)
- 同某一个DR进行比对
getModelDeployRequests()
修改步骤
- 增加DeployRequest的service
- 在deploy的controllor上依次调用该service的 create | approve 方法