李存金

明道云SaaS迁移到私有部署的各种坑

李存金Lv.2入道 发布于 最后回复 问答 私有部署
6 回复1530 浏览
原以为会很简单,导出再导入就可以了,后来发现还是自己太年轻了,各种坑。 官方的应用导出导入有诸多限制,带来很多问题 附件不能导出还原,100 张表单,30000 多个附件需要处理,用流程节点同步费事实力 导出有单表 10000,总数 50000 的限制 两个平台账号的邮箱和手机号必须完全一致,否则导入时无法匹配用户,会导致成员字段等失效 为了解决以上限制,以下用 Python 调用 API 实现了 一个脚本自动同步所有表单的附件( API 接口的限制,可以同步链接,但是无法更新显示的文件名 ) 一个脚本自动新增所有未导入的表单记录(SASS 平台同步到私有平台,表单内的记录差值大于 50 条的自动同步) 使用步骤: 修改 cfg/md.cfg 文件为 API 对应的地址和 APPKey Sign 信息 SASS_HOST = " https://api.mingdao.com/ " PRI_HOST = "https:/example.cn/api/" URL_APPINFO = "v1/open/app/get" URL_WORKSHEET_INFO = "v2/open/worksheet/getWorksheetInfo" SASS_APP_KEY = "" SASS_SIGN = "==" PRI_APP_KEY = "" PRI_SIGN = "==" 2.导出组织的成员的信息, 修改 person.json 姓名和 sass id 和私有 id 的对应关系 3.执行 getallworksheet.py 会自动拉取两个平台的所有表单,并保存到 cfg/all-worksheet.json 4.执行 syncallattch.py 自动同步所有附件控件, 同时 downloadurl 和原始文件名的对应会放到 cfg/urlmap.json 中 5.执行 auotsync.py 自动同步未导入的表单数据