数据模板和初始化工具介绍
建议采用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
命令即可开始初始化