docs: 初步整理文档 开放平台初始数据迁移 操作说明
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"
deleted file mode 100644
index 4e924fc..0000000
--- "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"
+++ /dev/null
@@ -1,313 +0,0 @@
-## 旧数据迁移到开发平台
-
-<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-;
-
- 根据查询结果插入以下数据:
-
- USE 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;
-
-
-```sql
-SELECT CONCAT(
- 'INSERT INTO \`TB_DEV_SERVICE_SPEC\` (ID,DELETED, SERVICE_ID, API_VERSION, EDIT_VERSION, DESCRIPTION) VALUES',
- '(\'', SERVICE_ID,'_',EDIT_VERSION, '\',\'0\',\'', SERVICE_ID, '\',\'', API_VERSION, '\',\'', EDIT_VERSION, '\',\'','','\');') as INSERT_SQL
-FROM platform_openapi_test.API_SPEC;
-```
-
-#### 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');
-
-
-
-
-
-
diff --git "a/docs/\345\274\200\346\224\276\345\271\263\345\217\260\345\210\235\345\247\213\346\225\260\346\215\256\350\277\201\347\247\273\346\223\215\344\275\234\350\257\264\346\230\216.md" "b/docs/\345\274\200\346\224\276\345\271\263\345\217\260\345\210\235\345\247\213\346\225\260\346\215\256\350\277\201\347\247\273\346\223\215\344\275\234\350\257\264\346\230\216.md"
new file mode 100644
index 0000000..bd0c4a5
--- /dev/null
+++ "b/docs/\345\274\200\346\224\276\345\271\263\345\217\260\345\210\235\345\247\213\346\225\260\346\215\256\350\277\201\347\247\273\346\223\215\344\275\234\350\257\264\346\230\216.md"
@@ -0,0 +1,403 @@
+
+## 旧数据迁移到开发平台
+
+### 1. 服务数据
+
+数据来源:
+
+POA 中已经存在的 service、version、spec、scope 等数据,需要在开放平台中插入对应的数据。
+
+#### 1.1 迁移服务 Service
+
+将POA 中现有的 服务,导入开放平台的服务
+
+具体操作:
+
+根据 platform_openapi 下 SERVICE 表的数据生成 insert 语句
+
+* 步骤 1,导入服务
+
+```sql
+use platform_openapi;
+
+select CONCAT(
+ 'INSERT INTO \`TB_DEV_SERVICE\` (ID, DELETED, NAME, DESCRIPTION, ORIGIN, SYSTEM_ID) VALUES',
+ '(\'', ID, '\',\'0\',\'', NAME, '\',\'', DESCRIPTION, '\',\'', ORIGIN, '\',\'','1','\');') as INSERT_SQL
+from platform_openapi.SERVICE
+order by ID
+;
+```
+
+* 步骤 2,设置服务的管理员和开发者
+
+通过 sql 脚本 设置服务的管理员和开发者
+
+**也可以在开放平台管理功能中进行设置**
+
+```sql
+INSERT INTO `TB_DEV_SERVICE_DEVELOPER` (`ID`, `DELETED`, `SERVICE_ID`, `DEVELOPER_ID`)
+VALUES ('<SERVICE_ID>_150', 0 , '<SERVICE_ID>', '150');
+
+INSERT INTO `TB_DEV_SERVICE_OPERATOR` (`ID`, `DELETED`, `SERVICE_ID`, `OPERATOR_ID`)
+VALUES ('<SERVICE_ID>_151', 0 , '<SERVICE_ID>', '151');
+```
+
+注,请将 `<SERVICE_ID>` 替换为 TB_DEV_SERVICE 表的 ID
+
+
+#### 1.2 迁移 Spec
+
+将POA 中现有的 spec,导入开放平台的spec
+
+具体操作:
+
+根据 platform_openapi 下 API_SPEC 表的数据生成 insert 语句
+
+```sql
+use platform_openapi;
+
+SELECT CONCAT(
+ 'INSERT INTO \`TB_DEV_SERVICE_SPEC\` (ID,DELETED, SERVICE_ID, API_VERSION, EDIT_VERSION, DESCRIPTION, SCOPE_COUNT) VALUES',
+ '(\'', SERVICE_ID,'_',EDIT_VERSION, '\',\'0\',\'', SERVICE_ID, '\',\'', API_VERSION, '\',\'', EDIT_VERSION, '\',\'','','\', 0);') as INSERT_SQL
+FROM platform_openapi.API_SPEC
+order by SERVICE_ID, API_VERSION
+;
+```
+
+注,请根据 poa-docs 中的 Scopes,补全 SCOPE_COUNT
+
+poa-docs 地址:`https://poa-docs.paas.xxx.edu.cn`
+
+
+#### 1.3 迁移 Scope
+
+将POA 中现有的 scope,导入开放平台的scope
+
+具体操作:
+
+根据 platform_openapi 下 API 表的数据生成 insert 语句
+
+```sql
+use platform_openapi;
+
+SELECT CONCAT(
+ 'INSERT INTO \`TB_DEV_SERVICE_SCOPE\` (ID, DELETED, SERVICE_ID, API_VERSION, NAME, DESCRIPTION, PUBLISHED, ENABLED) VALUES',
+ '(\'', SERVICE_ID,'_',SCOPE, '\',\'0\',\'', SERVICE_ID, '\',\'', API_VERSION, '\',\'', SCOPE, '\',\'','','\', 1, 1);') as INSERT_SQL
+from (
+ select SERVICE_ID, API_VERSION, EDIT_VERSION, SCOPE
+ from platform_openapi.API
+ where EDIT_VERSION in
+ (
+ select max(EDIT_VERSION) as EDIT_VERSION
+ from platform_openapi.API
+ group by SERVICE_ID, API_VERSION, SCOPE
+ )
+ group by SERVICE_ID, API_VERSION, EDIT_VERSION, SCOPE
+) API_TMP
+order by SERVICE_ID, API_VERSION, EDIT_VERSION, SCOPE
+;
+```
+
+注,请根据 poa-docs 中的 Scopes,补全 DESCRIPTION
+
+poa-docs 地址:`https://poa-docs.paas.xxx.edu.cn`
+
+
+### 2. 应用数据
+
+数据来源:
+
+应用数据的来源主要有三部分:
+
+* 认证服务中的 service
+* 消息服务的 应用(accessApp)
+* POA 的 client
+
+说明:
+
+需要将上述三类数据,整理为一份应用数据,对于有重复的应用数据,保留一份即可。建议先从认证服务的数据开始,认证服务中的应用数据比较全面。
+
+#### 2.1 迁移cas 中的应用数据
+
+数据从 cas_server.TB_SERVICE 表中获取
+
+具体操作:
+
+方式一,
+
+```sql
+use cas_server;
+
+select S.NAME, S.DESCRIPTION, S.INFORMATION_URL, S.APPLICATION_ID as APPLICATION_IDENTIFICATION
+from cas_server.TB_SERVICE S
+where S.DELETED = 0
+;
+```
+
+根据上面的查询结果,在开放平台数据库中创建应用:
+
+```sql
+use develop_center;
+
+INSERT INTO `TB_DEV_APPLICATION` (`ID`, `NAME`, `DESCRIPTION`, `URL`, `SYSTEM_ID`, `APPLICATION_IDENTIFICATION`)
+VALUES (-ID-, -NAME-, -DESCRIPTION-, -URL-, '1', -APPLICATION_IDENTIFICATION-)
+;
+```
+
+除了ID以外,其他字段一一对应。
+
+
+方式二,
+
+创建应用也可以参考使用以下语句:
+
+```sql
+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 , '\');') as INSERT_SQL
+from cas_server.TB_SERVICE
+where DELETED = 0
+;
+```
+
+这个语句对查询结果做了拼接,可以拿来直接使用,使用这个也需要考虑应用是否已经存在。
+
+
+
+#### 2.2 迁移message 中的应用数据:
+
+数据从 message.ACCESS_APP 表中获取
+
+具体操作:
+
+方式一,
+
+首先查询需要创建的应用:
+
+```sql
+use message;
+
+select APP.NAME, APP.DESCRIPTION, APP.ENABLED, APP.APP_ID APPLICATION_IDENTIFICATION
+from message.ACCESS_APP APP
+where DELETED = 0
+;
+```
+
+在查询结果中,根据字段APPLICATION_IDENTIFICATION,在开放平台中对比,如果不存在此应用,那么需要创建应用,数据从上面查询中获取。
+
+根据上面的查询结果,在开放平台数据库中创建应用:
+
+```sql
+USE develop_center;
+
+INSERT INTO `TB_DEV_APPLICATION` (`ID`, `NAME`, `DESCRIPTION`, `SYSTEM_ID`, `APPLICATION_IDENTIFICATION`)
+VALUES (-ID-, -NAME-, -DESCRIPTION-, '1', -APPLICATION_IDENTIFICATION-)
+;
+```
+
+除了ID以外,其他字段一一对应。
+
+如果已经存在,那么不需要再添加。
+
+
+方式二,
+
+创建应用也可以参考使用以下语句:
+
+```sql
+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,''),'\');') as INSERT_SQL
+from message.ACCESS_APP
+where DELETED = 0 AND APP_ID IS NOT NULL
+;
+```
+
+这个语句对查询结果做了拼接,可以拿来直接使用,使用这个语句也需要考虑应用是否已经存在。
+
+
+
+#### 2.3 迁移platform_openapi 中的数据
+
+根据 `https://poa-sa.paas.xxx.edu.cn/v1/clients` 接口获取所有client 信息
+
+具体操作:
+
+根据 /clients 接口获取所有client 信息
+
+根据返回数据中的clientName 来和应用表TB_DEV_APPLICATION 中的数据进行关联,对应表中的NAME;
+
+如果应用表中没有的应用,需要进行创建:
+
+```sql
+use develop_center;
+
+INSERT INTO `TB_DEV_APPLICATION` (`ID`, `NAME`, `DESCRIPTION`, `SYSTEM_ID`, `APPLICATION_IDENTIFICATION`)
+VALUES (-ID-, -NAME-, -DESCRIPTION-, '1', -APPLICATION_IDENTIFICATION-)
+;
+```
+
+
+#### 2.4 为应用和服务设置管理员和开发者
+
+具体操作:
+
+```sql
+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. 基础能力数据
+
+数据来源:
+
+* 认证服务的 service
+* 消息服务的应用
+* POA 中 client 的scope
+
+说明:
+1. 认证服务的 service ,已经在之前创建了对应的应用,也需要给此应用对应开通 CAS认证基础能力。
+2. 消息服务的应用,已经在之前创建了对应的应用,也需要给此应用对应开通消息基础能力。
+3. POA 中 client 申请了 scope ,之前已经创建了对应的应用,也需要给次应用对应开通平台OpenAPI基础能力。同时在开放平台中添加应用和scope的关系。
+
+#### 3.1 添加应用的CAS基础能力
+
+先根据开放平台中所选应用的APPLICATION_IDENTIFICATION 字段,在cas数据库中查询基础能力信息:
+
+```sql
+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
+
+```sql
+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拼接语句来进行插入:
+
+```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'),
+ '}',
+ '\');'
+) as INSERT_SQL
+from TB_SERVICE
+where DELETED = '0'
+;
+```
+
+
+#### 3.2 添加应用的MESSAGE基础能力
+
+先根据开放平台中所选应用的APPLICATION_IDENTIFICATION 字段,在message数据库中查询基础能力信息:
+
+```sql
+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 添加应用的openapi基础能力。
+
+* 开通
+
+根据 /clients 接口获取所有client 信息,主要是clientId,来添加应用的基础能力信息。需要替换对应的clientId信息。
+
+```sql
+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\"}');
+```
+
+* 添加 Scope
+
+根据 /clients 接口获取所有client 信息,可以看到此应用关联的scopes 列表。
+
+根据scope名称来查询开放平台中的scope:
+
+```sql
+select S.ID
+from TB_DEV_SERVICE_SCOPE S
+where S.NAME = -name-
+;
+```
+
+根据上面的应用id和scope的Id使用下面插入语句插入数据:
+
+```sql
+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')
+;
+```
+