基础数据迁移文档
diff --git "a/deploy-manifests/k8s-rancher/0.0.1.\345\237\272\347\241\200\346\225\260\346\215\256\350\277\201\347\247\273.md" "b/deploy-manifests/k8s-rancher/0.0.1.\345\237\272\347\241\200\346\225\260\346\215\256\350\277\201\347\247\273.md"
new file mode 100644
index 0000000..179bacb
--- /dev/null
+++ "b/deploy-manifests/k8s-rancher/0.0.1.\345\237\272\347\241\200\346\225\260\346\215\256\350\277\201\347\247\273.md"
@@ -0,0 +1,302 @@
+## 旧数据迁移到开发平台
+
+<br>
+
+### 1. 服务数据
+
+ 来源:
+ POA 中已经存在的 service、version、spec、scope 等数据,需要在开放平台中插入对应的数据。
+
+#### 1.1迁移服务:
+ 将POA 中现有的 服务,导入开放平台的服务
+
+#### 具体操作:
+
+ USE platform_openapi;
+
+ SELECT * FROM SERVICE;
+
+ 根据上面查询结果,来进行下面的插入操作,对应的字段做修改:
+
+ Use develop_center;
+
+ INSERT INTO `TB_DEV_SERVICE` (`ID`, `NAME`, `DESCRIPTION`, `ORIGIN`, `SYSTEM_ID`)
+ VALUES (-ID-, -NAME-, -DESCRIPTION-, -ORIGIN-, -'1'-);
+
+ 创建服务也可以参考使用以下语句:
+ SELECT CONCAT('INSERT INTO \`TB_DEV_SERVICE\` (ID,DELETED, NAME, DESCRIPTION, ORIGIN, SYSTEM_ID)
+ VALUES','(\'', ID, '\',\'0\',\'', NAME, '\',\'', DESCRIPTION, '\',\'', ORIGIN, '\',\'','1','\');') INFO
+ FROM SERVICE;
+
+ 这个语句对查询结果做了拼接,可以拿来直接使用
+
+ 设置此服务的管理员和开发者,也可以不在这里设置开发者和管理员,在2.4.1来统一设置:
+
+ INSERT INTO `TB_DEV_SERVICE_DEVELOPER` (`ID`, `DELETED`, `SERVICE_ID`, `DEVELOPER_ID`)
+ VALUES (-ID-, -DELETED- ,-SERVICE_ID-, '150');
+
+ INSERT INTO `TB_DEV_SERVICE_OPERATOR` (`ID`, `DELETED`, `SERVICE_ID`, `OPERATOR_ID`)
+ VALUES (-ID-, -DELETED- ,-SERVICE_ID-, '151');
+
+#### 1.2迁移spec:
+ 将POA 中现有的 spec,导入开放平台的spec
+
+#### 具体操作:
+
+ 查询服务的spec信息
+
+ USE platform_openapi;
+ SELECT SERVICE_ID,API_VERSION,EDIT_VERSION
+ FROM API_SPEC
+ WHERE SERVICE_ID = -SERVICE_ID-;
+
+ 根据查询结果插入以下数据:
+
+ USER develop_center;
+ INSERT INTO `TB_DEV_SERVICE_SPEC` (`ID`, `SERVICE_ID`, `API_VERSION`, `EDIT_VERSION`)
+ VALUES (-ID-, -SERVICE_ID-, -API_VERSION-, -EDIT_VERSION-);
+
+ TB_DEV_SERVICE_SPEC表中SCOPE_COUNT 列内容的设置:
+
+ services/{serviceId}/apiVersions/{apiVersion}/apiSpecs/scopes
+ 根据返回值设置SCOPE_COUNT;
+
+#### 1.3迁移scope:
+ 将POA 中现有的 scope,导入开放平台的scope
+
+#### 具体操作:
+
+ USE platform_openapi;
+ SELECT * FROM API_VERSION
+ WHERE SERVICE_ID = 'admincenter';
+ 取结果中的SERVICE_ID,PUBLISHED,API_VERSION
+
+
+ 根据查询结果访问
+ services/{serviceId}/apiVersions/{apiVersion}/apiSpecs/scopes
+
+ 获取scope的name 和description。
+
+ INSERT INTO `TB_DEV_SERVICE_SCOPE` (`ID`, `COMPANY_ID`, `DELETED`, `SERVICE_ID`, `NAME`, `PUBLISHED`, `DESCRIPTION`, `API_VERSION`) VALUES (-ID-, '1', '0', -SERVICE_ID-, -NAME-, -PUBLISHED-, -DESCRIPTION-, -API_VERSION-);
+
+### 2. 应用数据
+
+来源:
+ 应用数据的来源主要有三部分:
+
+ 认证服务中的 service
+ 消息服务的 应用(accessApp)
+ POA 的 client
+
+说明:
+ 需要将上述三类数据,整理为一份应用数据,对于有重复的应用数据,保留一份即可。建议先从认证服务的数据开始,认证服务中的应用数据比较全面。
+
+#### 2.1.1迁移cas 中的应用数据:
+ 数据从 TB_SERVICE 表中获取。
+
+#### 2.1.2具体操作:
+
+ #### 创建应用
+
+ USE cas_server;
+ SELECT S.NAME, S.DESCRIPTION, S.INFORMATION_URL,S.APPLICATION_ID APPLICATION_IDENTIFICATION
+ FROM TB_SERVICE S
+ WHERE S.DELETED = 0;
+
+ 根据上面的查询结果,在开放平台数据库中创建应用:
+ USE develop_center;
+
+ INSERT INTO `TB_DEV_APPLICATION` (`ID`, `NAME`, `DESCRIPTION`, `URL`, `SYSTEM_ID`, `APPLICATION_IDENTIFICATION`) VALUES (-ID-, -NAME-, -DESCRIPTION-, -URL-, '1', -APPLICATION_IDENTIFICATION-);
+
+
+ 建应用也可以参考使用以下语句:
+ SELECT CONCAT('INSERT INTO \`TB_DEV_APPLICATION\` (ID, DELETED, NAME, DESCRIPTION, URL, SYSTEM_ID, APPLICATION_IDENTIFICATION)
+ VALUES','(\'', ID, '\',\'1\',\'',NAME, '\',\'',DESCRIPTION,'\',\'', INFORMATION_URL,'\',\'','1', '\',\'',APPLICATION_ID , '\');')
+ FROM TB_SERVICE
+ WHERE DELETED = 0;
+
+ 这个语句对查询结果做了拼接,可以拿来直接使用,使用这个也需要考虑应用是否已经存在。
+
+
+ 除了ID以外,其他字段一一对应。
+
+
+#### 2.2.1迁移message 中的应用数据:
+
+ 数据从 ACCESS_APP 表中获取。
+
+#### 2.2.2具体操作:
+
+ 首先查询需要创建的应用:
+
+ USE message;
+ SELECT APP.NAME, APP.DESCRIPTION,APP.ENABLED,APP.APP_ID APPLICATION_IDENTIFICATION
+ FROM ACCESS_APP APP
+ WHERE DELETED = 0
+
+ 在查询结果中,根据字段APPLICATION_IDENTIFICATION,在开放平台中对比,如果不存在此应用,那么需要创建应用,数据从上面查询中获取。
+
+ 根据上面的查询结果,在开放平台数据库中创建应用:
+ USE develop_center;
+
+ INSERT INTO `TB_DEV_APPLICATION` (`ID`, `NAME`, `DESCRIPTION`, `SYSTEM_ID`, `APPLICATION_IDENTIFICATION`) VALUES (-ID-, -NAME-, -DESCRIPTION-, '1', -APPLICATION_IDENTIFICATION-);
+
+ 除了ID以外,其他字段一一对应。
+
+ 创建应用也可以参考使用以下语句:
+ SELECT CONCAT('INSERT INTO \`TB_DEV_APPLICATION\` (ID,DELETED, NAME, DESCRIPTION, SYSTEM_ID, `APPLICATION_IDENTIFICATION`, URL)
+ VALUES ','(\'',ID,'-message\',\'1\',\'',NAME,'\',\'', IFNULL(DESCRIPTION,''),'\',\'','1','\',\'',APP_ID,'\',\'',IFNULL(URL,''),'\');') INFO
+ FROM ACCESS_APP
+ WHERE DELETED = 0 AND APP_ID IS NOT NULL
+ 这个语句对查询结果做了拼接,可以拿来直接使用,使用这个语句也需要考虑应用是否已经存在。
+
+ 如果已经存在,那么不需要再添加。
+
+#### 2.3.1迁移platform_openapi 中的数据
+
+ 根据 /clients 接口获取所有client 信息
+
+#### 2.3.2具体操作
+
+ 根据 /clients 接口获取所有client 信息
+
+ 根据返回数据中的clientName 来和应用表TB_DEV_APPLICATION 中的数据进行关联,对应表中的NAME;
+
+ 如果应用表中没有的应用,需要进行创建:
+ USE develop_center;
+
+ INSERT INTO `TB_DEV_APPLICATION` (`ID`, `NAME`, `DESCRIPTION`, `SYSTEM_ID`, `APPLICATION_IDENTIFICATION`) VALUES (-ID-, -NAME-, -DESCRIPTION-, '1', -APPLICATION_IDENTIFICATION-);
+
+#### 2.4为应用和服务设置管理员和开发者
+
+#### 2.4.1具体操作
+
+ SELECT CONCAT('INSERT INTO \`TB_DEV_APPLICATION_DEVELOPER\` (ID, DELETED, APPLICATION_ID, DEVELOPER_ID)
+ VALUES','(\'',ID, '\',\'0' ,'\',\'',ID, '\',\'','150','\');')
+ FROM TB_DEV_APPLICATION;
+
+ SELECT CONCAT('INSERT INTO \`TB_DEV_APPLICATION_OPERATOR\` (ID, DELETED, APPLICATION_ID, OPERATOR_ID)
+ VALUES','(\'',ID,'\',\'0' ,'\',\'',ID, '\',\'','151','\');')
+ FROM TB_DEV_APPLICATION;
+
+ SELECT CONCAT('INSERT INTO \`TB_DEV_SERVICE_DEVELOPER\` (ID, DELETED, SERVICE_ID, DEVELOPER_ID)
+ VALUES','(\'',ID, '\',\'0' ,'\',\'',ID, '\',\'','150','\');')
+ FROM TB_DEV_SERVICE;
+
+ SELECT CONCAT('INSERT INTO \`TB_DEV_SERVICE_OPERATOR\` (ID, DELETED, SERVICE_ID, OPERATOR_ID)
+ VALUES','(\'',ID, '\',\'0' ,'\',\'',ID, '\',\'','151','\');')
+ FROM TB_DEV_SERVICE;
+
+ 这个语句对查询结果做了拼接,结果是对应用的开发者和管理员,服务的开发者和管理员进行插入数据的语句。
+
+ 如果有ID重复时,需要手动去修改ID,防止重复。
+
+
+
+### 3. 基础能力数据
+
+数据来源:
+
+ 1.认证服务的 service
+ 2.消息服务的应用
+ 3.POA 中 client 的scope
+
+说明:
+ 1.认证服务的 service ,已经在之前创建了对应的应用,也需要给此应用对应开通 CAS认证基础能力。
+ 2.消息服务的应用,已经在之前创建了对应的应用,也需要给此应用对应开通消息基础能力。
+ 3.POA 中 client 申请了 scope ,之前已经创建了对应的应用,也需要给次应用对应开通平台OpenAPI基础能力。同时在开放平台中添加应用和scope的关系。
+
+#### 3.1添加应用的CAS基础能力
+
+ 先根据开放平台中所选应用的APPLICATION_IDENTIFICATION 字段,在cas数据库中查询基础能力信息:
+
+ USE cas_server;
+ SELECT S.LOGOUT_TYPE, S.APPLICATION_DOMAIN, S.ADD_TIME,
+ S.DESCRIPTION, S.EXTERNAL_ID, S.INFORMATION_URL, S.ENABLED, S.REGISTERED_SERVICE_ID,
+ S.COMPANY_ID, S.RESPONSE_TYPE, S.DELETED, S.SSO_ENABLED, S.LOGOUT_URL, S.NAME,
+ S.ADD_ACCOUNT, S.APPLICATION_ID, S.SERVICE_ID
+ FROM TB_SERVICE S
+ WHERE S.DELETED = 0
+ AND S.APPLICATION_ID = -APPLICATION_IDENTIFICATION-;
+
+ 查询结果放入下面的ABILITY_SETTINGS 字段中。
+
+ 下面插入数据中,APPLICATION_ID 对应所选应用的ID
+ USE develop_center;
+ INSERT INTO `TB_DEV_APPLICATION_ABILITY_USAGE` (`ID`, `COMPANY_ID`, `DELETED`, `APPLICATION_ID`, `ABILITY_ID`, `APPLY_TIME`,ABILITY_SETTINGS) VALUES (-ID-, '1', '0', -APPLICATION_ID-, 'cas', '2020-12-22 15:32:43',-ABILITY_SETTINGS-);
+
+ -ABILITY_SETTINGS- 内容:
+ {
+ "logoutType": "",
+ "applicationDomain": "",
+ "addTime": 1608538919314,
+ "description": "",
+ "externalId": "",
+ "informationUrl": "",
+ "enabled": true,
+ "registeredServiceId": 10060,
+ "companyId": "",
+ "responseType": "",
+ "deleted": false,
+ "ssoEnabled": true,
+ "logoutUrl": "",
+ "name": "",
+ "id": "",
+ "addAccount": "",
+ "applicationId": "",
+ "serviceId": "",
+ "requireAllAttributes": true
+ }
+ 利用上面的查询将对应内容置换。
+
+ 可以使用下面的查询语句生成 sql拼接语句来进行插入:
+
+ SELECT CONCAT(
+ 'INSERT INTO \`TB_DEV_APPLICATION_ABILITY_USAGE\`
+ (ID, COMPANY_ID, DELETED, APPLICATION_ID, ABILITY_ID, APPLY_TIME,ABILITY_SETTINGS)
+ VALUES (','\'',ID,'cas','\',\'',' 1\', \'0','\',\'', ID,'\',\'', 'cas\', \'2020-12-22 15:32:43\',\'',
+ '{"logoutType":"',IFNULL(LOGOUT_TYPE,''),'","applicationDomain":"',IFNULL(APPLICATION_DOMAIN,''),'","addTime":1608538919314,"description":"',IFNULL(DESCRIPTION,''),
+ '","externalId":"',IFNULL(EXTERNAL_ID,''),'","informationUrl":"',IFNULL(INFORMATION_URL,''),'","enabled":true,"registeredServiceId":',IFNULL(REGISTERED_SERVICE_ID,''),
+ ',"companyId":"1","responseType":"',RESPONSE_TYPE,'","deleted":false,"ssoEnabled":',IF(SSO_ENABLED = 1,'true','false'),',"idTokenEnabled":',IF(ID_TOKEN_ENABLED = 1,'true','false'),
+ ',"jwtAsServiceTicket":',IF(JWT_AS_SERVICE_TICKET = 1,'true','false'),',"logoutUrl":"',IFNULL(LOGOUT_URL,''),'","name":"',NAME,
+ '","id":"',ID,'","addAccount":"admin","applicationId":"',IFNULL(APPLICATION_ID,''),'","serviceId":"',IFNULL(SERVICE_ID,''),'","requireAllAttributes":',IFNULL(REQUIRE_ALL_ATTRIBUTES,'1'),'}'
+ '\');'
+ )
+ FROM TB_SERVICE
+ WHERE DELETED = '0';
+
+
+#### 3.2添加应用的MESSAGE基础能力
+
+ 先根据开放平台中所选应用的APPLICATION_IDENTIFICATION 字段,在message数据库中查询基础能力信息:
+
+ USE develop_center;
+ INSERT INTO `TB_DEV_APPLICATION_ABILITY_USAGE` (`ID`, `COMPANY_ID`, `DELETED`, `APPLICATION_ID`, `ABILITY_ID`, `APPLY_TIME`) VALUES (-ID-, '1', '0', -APPLICATION_ID-, 'message', '2020-12-31 15:32:43');
+
+
+#### 3.3.1添加应用的openapi基础能力。
+
+ 根据 /clients 接口获取所有client 信息,主要是clientId,来添加应用的基础能力信息。需要替换对应的clientId信息。
+
+ USE develop_center;
+ INSERT INTO `TB_DEV_APPLICATION_ABILITY_USAGE` (`ID`, `COMPANY_ID`, `DELETED`, `APPLICATION_ID`, `ABILITY_ID`, `APPLY_TIME`,`ABILITY_SETTINGS`) VALUES (-ID-, '1', '0', -APPLICATION_ID-, 'platformApi', '2020-12-31 15:32:43','{\"clientId\":\"id123\"}');
+
+
+#### 3.3.2添加应用的scope。
+
+ 根据 /clients 接口获取所有client 信息,可以看到此应用关联的scopes 列表。
+
+ 根据scope名称来查询开放平台中的scope:
+ SELECT S.ID
+ FROM TB_DEV_SERVICE_SCOPE S
+ WHERE S.NAME = -name-;
+
+ 根据上面的应用id和scope的Id使用下面插入语句插入数据:
+
+ INSERT INTO `TB_DEV_APPLICATION_SCOPE_USAGE` (`ID`, `APPLICATION_ID`, `ABILITY_ID`, `SCOPE_ID`, `APPLY_TIME`) VALUES (-ID-, -APPLICATION_ID-, 'platformApi', -SCOPE_ID-, '2020-12-31 11:33:19');
+
+
+
+
+
+