数据模板和初始化工具介绍
建议采用liquidbase脚本进行数据迁移。
数据格式模板和初始化工具下载
点击接口平台的数据格式模板下载对应压缩包。压缩包解压之后可以看到三个目录,分别是:
- data:里面有一个文件名为
interface_import_template的excel文件。这个文件就是存放特定格式的数据。 - target:里面有一个名称为
choerodon-tool-liquibase的jar包。是初始化脚本文件 - init:是一个可以执行的脚本启动文件
 
接下来介绍具体的操作步骤:
迁移数据种子文件准备
hap老接口平台的数据要迁移到hzero新接口平台,需要按照interface_import_template.xlsx模板文件的格式从老接口平台导出种子数据。
模板文件格式介绍
- 
打开压缩包中解压的模板文件,可以看到有三个sheet页
interface_server,interface,interface_auth.分别代码的是服务表,接口表和权限表。 - 
每个sheet页的第7行数据是不允许修改的标题行,它定义了要数据所在的表名称以及字段名称,其中D列定义了表名,D列右边的每个列定义的是字段名称。而每个字段列的字段名称是用了不同的特殊符号标识了的。
*表示自动生成,一般用于主键字段,#表示唯一性检查,用于唯一性字段上面。没有标识的代表普通字段。切记,每个sheet页的第7行数据不允许修改,否则会导致导入的数据不正确或者导入失败。 - 
由于服务表,接口表和权限表这三张表的数据之间存在头行关系,比如interface有一个字段名称叫
interface_server_id,他是依赖于一条interface_server的数据中的interface_server_id字段。但是模板中interface_server表中的interface_server_id是主键字段,他的值是自动生成的,所有无法在模板数据中直接确定。所有我们看到demo数据的interface表的interface_server_id字段的值是通过excel的静态引用实现的。这样在跑脚本的时候就能动态设置值。所有在准备种子数据的时候一定要注意数据间的引用关系。在模板中有如下几个引用关系:- interface表的
interface_server_id字段引用interface_server表中的interface_server_id字段 - interface_auth表的
auth_level_value字段引用interface_server表中的interface_server_id字段 
 - interface表的
 
种子数据字段含义说明
详情说明种子数据的字段含义以及特殊字段的处理方式。具体的与老系统的字段对应关系需要自己根据含义去做匹配。
interface_server表
- interface_server_id:服务配置ID,数据库自增
 - tenant_id:租户ID,老接口平台不存在该字段,默认为平台级数据,初始化为0
 - server_code:服务代码
 - server_name:服务名称,不允许为空
 - service_type:服务类型,不允许为空,可选值为
- REST:REST类型
 - SOAP:SOAP类型
 
 - domain_url:服务域名地址
 - soap_namespace:SOAP命名空间,service_type为SOAP时需要填值
 - soap_element_prefix:SOAP参数前缀标识,service_type为SOAP时需要填值
 - enabled_flag:是否启用。1启用,0未启用 默认为1
 - service_category:服务类别,hap的接口都是外部接口,所有取值应该是EXTERNAL。可选值为
- INTERNAL:内部接口
 - EXTERNAL:外部接口
 - COMPOSITE:组合接口
 
 - namespace:命名空间,默认租户编码,与服务代码一起构成唯一 hap的的数据取值为HZERO
 - enabled_certificate_flag:是否启用证书。1启用,0未启用 默认为0 。这里不输入或者输入为0
 - certificate_id:CA证书ID 不填
 
hitf_interface表
- interface_id:接口ID,数据库自增
 - tenant_id:老接口平台不存在该字段,默认为平台级数据,初始化为0
 - interface_server_id:服务配置ID,需要引用接口所在的服务的服务配置ID
 - interface_code:接口编码
 - interface_name:接口名称,不允许为空
 - interface_url:接口地址。需要注意的是服务域名地址+接口地址组成一个完整的接口URL
 - publish_type:发布类型,选值为
- REST:REST类型
 - SOAP:SOAP类型
 
 - request_method: 请求方式,选值为
- GET:GET类型
 - POST:POST类型
 - PUT:PUT类型
 - DELETE:DELETE类型
 
 - request_header:接口ContentType , 请求方式,选值为
- application/json:application/json类型
 - application/xml:application/xml类型
 - application/x-www-form-urler:application/x-www-form-urler类型
 
 - enabled_flag:是否启用。1启用,0未启用 默认为1
 - soap_version:SOAP版本 publish_type为SOAP时填值,选值为
- SOAP11:SOAP11
 - SOAP12:SOAP12
 
 - status: 状态,默认值为ENABLED,选值为
- ENABLED: 正常
 - DISABLED:失效
 - DISABLED_INPROGRESS:待失效(窗口期:30天)
 
 - mapping_class:映射类,处理请求参数及响应格式的映射 ,可暂不配置
 
hitf_interface_auth表
- interface_auth_id: 权限ID,数据库自增
 - interface_id:接口ID 暂未使用字段,不填
 - tenant_id:租户ID,不允许为空。老接口平台不存在该字段,默认为平台级数据,初始化为0
 - auth_level:认证层级,不允许为空,由于导入的数据是针对服务,填值为SERVER
 - auth_level_value:认证层级ID,不允许为空,由于导入的数据是针对服务,所以需要引用权限所在的服务的服务配置ID
 - auth_type:认证模式,默认为NONE,选值为
- NONE:NONE
 - BASIC:BASIC
 - OAUTH2:OAUTH2
 
 - grant_type:授权模式,选值为
- CLIENT:客户端模式
 - PASSWORD:用户名模式
 
 - access_token_url:获取Token的URL
 - client_id:客户端ID ,grant_type为CLIENT时需要
 - client_secret:客户端密钥,grant_type为CLIENT时需要
 - auth_username:认证用户名,grant_type为PASSWORD时需要
 - auth_password:认证密码,grant_type为PASSWORD时需要
 - soap_wss_password_type:SOAP加密类型
 - soap_username:校验用户名
 - soap_password:校验密码
 - remark:备注说明
 - password_encode_type:密码加密类型
 
liquidbase脚本使用说明
- 在解压出文件中编辑找到
init.sh文件,右键编辑可到如下内容 
#!/usr/bin/env bash
mkdir -p target
if [[ ! -f target/choerodon-tool-liquibase.jar ]]
then
    curl https://nexus.choerodon.com.cn/repository/choerodon-release/io/choerodon/choerodon-tool-liquibase/0.9.0.RELEASE/choerodon-tool-liquibase-0.9.0.RELEASE.jar -o target/choerodon-tool-liquibase.jar
fi
#建表
java -Dspring.datasource.url="jdbc:mysql://localhost:3306/hzero_interface?useUnicode=true&characterEncoding=utf-8&useSSL=false" \
	 -Dspring.datasource.username=root \
	 -Dspring.datasource.password=root \
	 -Dspring.datasource.tomcat.max-active=500 \
	 -Ddata.drop=false -Ddata.init=init \
	 -Ddata.dir=data \
	 -jar target/choerodon-tool-liquibase.jar
需要我们手动调整的地方有:
- Dspring.datasource.url:导入的目标数据库URL根据自己的数据库类型及地址填写,示例是mysql类型数据库
 - -Dspring.datasource.username:用户名
 - -Dspring.datasource.password:密码
 
修改完成之后在init.sh所在的目录下打开命令行,执行./init.sh命令即可开始初始化