全部文档
文档中心DeepFOS 平台应用与资源应用迁移

应用迁移

应用迁移用于将源应用的业务模型、数据、元素及相关配置迁入目标应用,可用于跨空间或跨环境部署。本篇介绍整体迁移顺序和依赖检查,元素导入导出的详细操作参见元素管理与权限。

DeepModel 对象结构、配置和对象数据需通过 DeepModel 的迁移功能处理,不能仅依靠平台元素导出包迁移。未使用 DeepModel、工作流或数据流的应用,可跳过对应步骤。

迁移内容

入口

空间级依赖

选择目标企业 → 配置管理 → 目标空间,进入内置数据源、组件管理、空间成员、消息管理或 NPM 管理。

DeepModel 对象及数据

源应用或目标应用的 DeepModel 控制台 → 全局配置 → 迁移管理。

应用元素

源应用或目标应用 → 设置 → 元素管理。

元素导入日志

配置管理 → 目标空间 → 作业管理。

工作流、数据流发布

目标应用中的工作流编辑页面或数据流监控页面。

创建目标应用及导入导出资源,需要具备对应管理或操作权限,具体参见应用生命周期和角色与权限模型。

先确认源企业、空间、应用与目标位置。目标应用尚不存在时,先在目标空间中创建默认应用;向已有应用导入前,应备份可能被替换的元素及数据,并核对覆盖范围。

跨空间或跨环境迁移时,按应用实际依赖准备以下内容;同一空间内迁移时,也应检查依赖是否可用。

检查项

准备内容

内置数据源

确认目标空间已配置数据表及组件所需的数据源,缺失时先新建。

组件及版本

注册应用所需组件,核对目标环境的版本及依赖是否支持导入资源。

DeepModel 与工作流初始化

使用 DeepModel 时,先在目标空间注册 DeepModel 组件,再进入其控制台完成初始化。若工作流基于 DeepModel,还需在 DeepModel 注册并初始化完成后,重新注册工作流组件。

成员、用户组和角色

准备授权及流程指派所引用的用户、用户组,并为目标应用配置角色。按 ID 引用的对象需保持对应关系,不能仅凭名称相同判断已匹配。

消息模板

在目标空间准备工作流、数据流通知所需模板,核对模板编码、类型及参数。

NPM 包

上传并启用 UX 自定义控件所需的包,核对包名及版本。

接口与跳转地址

检查工作流、数据流调用的接口地址、菜单自定义链接、UX 中 iframe 地址及跨空间元素链接,确认迁移后是否仍适用,必要时改为目标环境地址。

空间配置参见空间级配置,组件注册参见组件接入与启用。成员迁移参见成员与用户组:建议使用用户 ID 作为用户标识,并按要求填写“导入用户标识”。

app_migration1

步骤

操作位置

主要内容

1

源应用

导出元素,选择是否包含业务数据及权限。

2

源应用

导出 DeepModel 对象结构、配置及所需数据。

3

目标应用

导入元素,处理同名资源、数据和权限。

4

目标应用

导入 DeepModel 对象结构、配置及数据。

5

目标应用

核对配置,发布需要运行的工作流和数据流。

先导入元素,为 DeepModel 中引用数据表、维度等元素的对象准备依赖。依赖 DeepModel 的 UX、流程等在对象及数据导入完成前可能暂时无法正常使用,应在全部导入完成后统一检查引用和配置。

  1. 进入源应用,切换至“设置 → 元素管理”,勾选需要迁移的文件夹和元素,单击“导出”。菜单、UX 及其引用的业务元素也应纳入检查范围。

  2. 在“选择导出元素”中核对关联资源,避免遗漏必要依赖。

  3. 设置“数据导出方式”和“权限导出方式”。需要迁移业务数据或保留授权时,选择包含对应内容。

  4. 确认导出,完成后前往下载中心下载导出包。

元素导出包中的业务数据范围取决于对应组件的导出能力,不替代 DeepModel 对象及数据迁移,也不代表包含全部流程历史实例。

app_migration2

app_migration3

app_migration4

  1. 进入源应用的 DeepModel 控制台,确认需要迁移的对象结构、配置及数据范围。

  2. 全库迁移用于整体迁移应用的 DeepModel 对象结构、配置及数据,通常迁入空白应用,适用于测试环境迁移至正式环境、复用已有应用等场景。进入“全局配置 → 迁移管理”,单击“全库导出”下载迁移文件。

  3. 若仅迁移部分对象,按 DeepModel 迁移中的方式批量导出对象结构和数据,并记录需在目标应用手动维护的配置。

导入前应确认目标应用的 DeepModel 是否为空;若已有对象或数据,应先核对导入的影响范围。如需清空,请向产品研发团队提交工单,并提前备份需要保留的数据。

app_migration5

app_migration6

app_migration7

  1. 进入目标应用,切换至“设置 → 元素管理”,选择存放目录,单击“导入”,上传源应用导出的 ZIP 文件。

  2. 选择需要导入的内容,检查同名元素的比较结果,按需选择替换或跳过。替换前应确认目标已有内容是否需要保留。

  3. 设置是否导入业务数据,以及权限处理方式“覆盖”“增量”或“忽略”,具体含义参见元素管理与权限。导出时未包含的数据或权限,不能通过导入选项补回。

  4. 确认导入,完成后检查元素及关联配置。

app_migration8

进入“配置管理 → 目标空间 → 作业管理”,查看对应导入作业的执行结果和日志。存在失败项时,先根据日志补齐依赖或修正配置,再处理失败内容,不应仅凭元素已出现在列表中判断全部导入成功。

app_migration9

  1. 进入目标应用的 DeepModel 控制台,确认当前空间和应用正确。

  2. 进入“全局配置 → 迁移管理”,上传源应用导出的迁移文件,核对导入范围后执行“全库导入”。仅迁移部分对象时,参见 DeepModel 迁移。

  3. 导入完成后,检查对象结构、配置及数据是否完整,并核对对象链接和资源引用,必要时调整为目标空间或目标应用中的对应资源。

导入失败时,可在“迁移管理”中查看对应迁移日志,根据失败原因处理后重试。

app_migration10

app_migration11

app_migration12

发布前先核对目标环境中的数据源、用户或用户组、通知模板、外部接口及定时触发配置,避免误向正式用户发送通知或操作源环境数据。

工作流:

  1. 打开目标工作流,检查导入后的节点配置及引用资源,修复校验错误。

  2. 工作流需逐个发布。确认各工作流需要运行的主版本内容后,分别执行发布,并检查是否存在启用版本。

工作流的版本规则参见流程发布与流程管理。

app_migration13

数据流:

  1. 进入目标应用的数据流监控页面,在“数据流管理”中定位本次迁移的元素。

  2. 核对本次迁移的数据流及其设计内容,选择需要发布的数据流执行“批量发布”。

批量发布会将选定数据流的主版本发布为正式版本。操作说明参见数据流监控。

app_migration14

检查项

检查内容

导入结果

查看作业日志,确认失败项已处理。

对象与数据

检查 DeepModel 对象结构、链接、关键数据及必要配置。

元素与页面

打开关键表格、模型和 UX,检查数据源、自定义控件及关联元素。

菜单与权限

使用目标业务用户检查菜单、首页和元素访问范围,不仅使用管理员账号验证。

流程与通知

使用测试数据验证工作流、数据流和通知,确认运行版本、接收人及调用地址正确。

导入元素失败,“作业管理”的日志明细显示:

Copy
元素名称[xxx]元素类型[xxx]路径[xxx]导入失败:通用异常:组件不可用

进入“配置管理 → 目标空间 → 组件管理”,注册对应组件后重新导入。

app_migration15

导入工作流元素失败,“作业管理”的日志明细显示:

Copy
元素名称[xxx]元素类型[WKFL]路径[xxx]导入失败:调用[deepflow-server3-0]元素导入业务数据接口异常:42=工作流组件的数据源部署在DeepModel数据库,请先到DeepModel控制台中进行数据库初始化并重新注册工作流组件

按以下顺序处理后重新导入:

  1. 进入“配置管理 → 目标空间 → 组件管理”,注册 DeepModel 组件。

  2. 进入 DeepModel 控制台,完成数据库初始化。

  3. 返回“组件管理”,重新注册工作流组件。

app_migration16

在 DeepModel 控制台中导入或手动新建工作流对象组失败,日志中出现以下错误;导入失败时,可在“迁移管理”中查看日志明细:

Copy
创建工作流视图失败,原因:StatementCallback; bad SQL grammar [create or replace view deepflow."comment" as select hi_comment.id_ as comment_id, hi_comment.time_ as created_time, ...

工作流对象组要求工作流的数据源部署在 DeepModel 中。确认 DeepModel 已完成数据库初始化后,进入“配置管理 → 目标空间 → 组件管理”,重新注册工作流组件,再重试导入或新建工作流对象组。

app_migration17

打开权限方案、菜单或流程配置时,提示用户或用户组不存在。

在“配置管理 → 目标空间 → 空间成员”中补齐所引用的用户和用户组。按 ID 引用时,需要与源配置中的用户 ID、用户组 ID 对应;仅创建同名对象不能修复引用。若目标对象的 ID 已不同,应重新选择授权或指派对象,并检查相关数据链接。导入方式参见成员与用户组。

app_migration18

打开工作流或数据流时,提示消息模板不存在。

进入“配置管理 → 目标空间 → 消息管理 → 模板管理”,按源配置补齐模板,并核对编码、类型和参数;返回工作流或数据流检查模板引用,必要时重新选择并保存。配置方式参见空间级配置。

app_migration19

打开 UX 时,提示 Error: [importComponent] unknown component {...}。

若报错涉及自定义控件,进入“配置管理 → 目标空间 → NPM 管理”,上传并启用源空间对应的 NPM 包,核对包名和版本后重新打开 UX。使用方式参见UX 自定义控件。

app_migration20

部分存量环境中,打开 UX 或 DeepModel 的 SystemUser 数据管理时,可能提示 object type 'spacexxx:SystemUser' has no link or property 'order'。

进入 DeepModel 控制台的地图模式,对 SystemUser 执行“更新结构”。更新成功后,若 UX 仍提示该字段不存在,先刷新相关领域模型的列表(如有),再刷新 UX 中相关数据源的结构并保存。不要为消除报错自行添加同名字段。

app_migration21

app_migration22

app_migration25

app_migration23

迁移后,维度同步 DeepModel 数据时,不同 UI 版本可能出现以下报错:

UI 版本

操作场景

报错信息

老版 UI

在“数据同步配置”中开始同步。

ERROR: relation "appxxx_md_object" does not exist

新版 UI

切换到“与 DeepModel 同步”。

查询对象信息异常:StatementCallback; bad SQL grammar [select ... from appmxxx_md_object where object_code='xxx'](省略查询字段)

先确认目标应用中的对应对象已完成迁移,再在维度的数据同步配置中重新选择目标同步对象并保存,然后重试同步。

app_migration24

app_migration26

回到顶部

咨询热线

400-821-9199