基础数据迁移文档
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');
+
+
+
+
+
+