Browse Source

脚本调整05.27.17

lijihong 6 years ago
parent
commit
13482ba83d

+ 1 - 1
TRS.WCM.Developer/贵州项目/0_update_data_dbfield.sql

@@ -52,7 +52,7 @@ CREATE PROCEDURE update_data_dbfield (
 												' add column OriginMetaDataId int(11) DEFAULT NULL,
 												' add column OriginMetaDataId int(11) DEFAULT NULL,
                          add column FromType int(11) DEFAULT NULL,
                          add column FromType int(11) DEFAULT NULL,
                          add column FromId int(11) DEFAULT NULL,
                          add column FromId int(11) DEFAULT NULL,
-                         add column DocRelTime int(11) DEFAULT NULL,
+                         add column DocRelTime timestamp NULL DEFAULT NULL,
                         add column AttachPic smallint(6) DEFAULT NULL,
                         add column AttachPic smallint(6) DEFAULT NULL,
                         add column AttachVideo smallint(6) DEFAULT NULL,
                         add column AttachVideo smallint(6) DEFAULT NULL,
                         add column AttachAudio smallint(6) DEFAULT NULL,
                         add column AttachAudio smallint(6) DEFAULT NULL,

+ 9 - 4
TRS.WCM.Developer/贵州项目/0_update_data_table.sql

@@ -2,7 +2,9 @@
 
 
 DROP PROCEDURE IF EXISTS update_data_table;
 DROP PROCEDURE IF EXISTS update_data_table;
 DELIMITER $$
 DELIMITER $$
-CREATE PROCEDURE update_data_table(IN prevtabelId BIGINT(20))
+CREATE PROCEDURE update_data_table(
+                            IN citySuffix VARCHAR(20),
+                            IN prevtabelId BIGINT(20))
 	BEGIN 
 	BEGIN 
 	
 	
 	DECLARE isover INT DEFAULT 0;
 	DECLARE isover INT DEFAULT 0;
@@ -48,8 +50,6 @@ CREATE PROCEDURE update_data_table(IN prevtabelId BIGINT(20))
     f_OWNERTYPE,
     f_OWNERTYPE,
     f_OWNERID
     f_OWNERID
     ;
     ;
-
-    select concat('开始修改 ', '元数据字段') info;
     set @i = 0;
     set @i = 0;
     WHILE isover= 0 DO
     WHILE isover= 0 DO
 
 
@@ -62,7 +62,12 @@ CREATE PROCEDURE update_data_table(IN prevtabelId BIGINT(20))
               call update_data_dbfield(f_TABLENAME, f_TABLEINFOID, @max_dbfieldinfo_id + (@i * 9), @sql);
               call update_data_dbfield(f_TABLENAME, f_TABLEINFOID, @max_dbfieldinfo_id + (@i * 9), @sql);
 
 
               set @i = @i + 1;
               set @i = @i + 1;
-              set v_sql = concat(v_sql, @sql);
+              set @id_field_sql = concat(' ALTER TABLE wcmmetatable', f_TABLENAME,
+                  ' CHANGE COLUMN `WCMMetaTable',f_TABLENAME,
+                                   'ID` `wcmmetatable',f_TABLENAME, citySuffix,
+                                   'ID`  int(11) NOT NULL;');
+
+              set v_sql = concat(v_sql, @sql, @id_field_sql);
               SET @log_sql = build_migration_log_sql('update_data_tabel_id', f_TABLEINFOID, now());
               SET @log_sql = build_migration_log_sql('update_data_tabel_id', f_TABLEINFOID, now());
               prepare stmt from @log_sql;
               prepare stmt from @log_sql;
               EXECUTE stmt;
               EXECUTE stmt;

+ 1 - 0
TRS.WCM.Developer/贵州项目/3_sp_data_migration_mas_publishedvideo.sql

@@ -553,6 +553,7 @@ CREATE PROCEDURE sp_data_migration_mas_publishedvideo(IN prevMasVideoId BIGINT(2
           prepare stmt from @log_sql;
           prepare stmt from @log_sql;
           EXECUTE stmt;
           EXECUTE stmt;
           deallocate prepare stmt;
           deallocate prepare stmt;
+          call setOffset(migr_table_name, masVideoIdOffset, prevMasVideoId, @ID);
 
 
     END IF ;
     END IF ;
 
 

+ 5 - 2
TRS.WCM.Developer/贵州项目/3_sp_data_migration_mas_videostream.sql

@@ -2,7 +2,9 @@
 
 
 DROP PROCEDURE IF EXISTS sp_data_migration_mas_videostream;
 DROP PROCEDURE IF EXISTS sp_data_migration_mas_videostream;
 DELIMITER $$
 DELIMITER $$
-CREATE PROCEDURE sp_data_migration_mas_videostream(IN prevMasVideoId BIGINT(20),
+CREATE PROCEDURE sp_data_migration_mas_videostream(
+                                              IN prevMasVideoId BIGINT(20),
+                                              IN videostreamIdOffset BIGINT(20),
                                               IN masVideoIdOffset BIGINT(20))
                                               IN masVideoIdOffset BIGINT(20))
 	BEGIN 
 	BEGIN 
 	
 	
@@ -181,7 +183,7 @@ CREATE PROCEDURE sp_data_migration_mas_videostream(IN prevMasVideoId BIGINT(20),
         THEN
         THEN
 
 
             SET @ID = f_ID;
             SET @ID = f_ID;
-            SET f_ID = f_ID + masVideoIdOffset;
+            SET f_ID = f_ID + videostreamIdOffset;
             SET f_VIDEOID = f_VIDEOID + masVideoIdOffset;
             SET f_VIDEOID = f_VIDEOID + masVideoIdOffset;
 
 
             insert into trs_mas.mas_videostream
             insert into trs_mas.mas_videostream
@@ -290,6 +292,7 @@ CREATE PROCEDURE sp_data_migration_mas_videostream(IN prevMasVideoId BIGINT(20),
           prepare stmt from @log_sql;
           prepare stmt from @log_sql;
           EXECUTE stmt;
           EXECUTE stmt;
           deallocate prepare stmt;
           deallocate prepare stmt;
+          call setOffset(migr_table_name, masVideoIdOffset, prevMasVideoId, @ID);
 
 
     END IF ;
     END IF ;
 
 

+ 1 - 1
TRS.WCM.Developer/贵州项目/3_sp_data_migration_masid.sql

@@ -95,7 +95,7 @@ CREATE PROCEDURE sp_data_migration_masid(IN prevMasId BIGINT(20),
             prepare stmt from @log_sql;
             prepare stmt from @log_sql;
             EXECUTE stmt;
             EXECUTE stmt;
             deallocate prepare stmt;
             deallocate prepare stmt;
-
+            call setOffset(migr_table_name, masIdOffset, prevMasId, @ID);
       END IF ;
       END IF ;
 
 
       FETCH cur INTO
       FETCH cur INTO

+ 1 - 0
TRS.WCM.Developer/贵州项目/3_sp_data_migration_masvideo.sql

@@ -553,6 +553,7 @@ CREATE PROCEDURE sp_data_migration_masvideo(IN prevMasVideoId BIGINT(20),
           prepare stmt from @log_sql;
           prepare stmt from @log_sql;
           EXECUTE stmt;
           EXECUTE stmt;
           deallocate prepare stmt;
           deallocate prepare stmt;
+          call setOffset(migr_table_name, masVideoIdOffset, prevMasVideoId, @ID);
 
 
     END IF ;
     END IF ;
 
 

+ 4 - 2
TRS.WCM.Developer/贵州项目/3_sp_data_migration_xwcmmaterial.sql

@@ -3,7 +3,8 @@ DROP PROCEDURE IF EXISTS sp_data_migration_xwcmmaterial;
 DELIMITER $$
 DELIMITER $$
 CREATE PROCEDURE sp_data_migration_xwcmmaterial(IN prevAppendixId BIGINT(20),
 CREATE PROCEDURE sp_data_migration_xwcmmaterial(IN prevAppendixId BIGINT(20),
                                               IN appendixIdOffset BIGINT(20),
                                               IN appendixIdOffset BIGINT(20),
-                                              IN docIdOffset BIGINT(20))
+                                              IN docIdOffset BIGINT(20),
+                                              IN masIdOffset BIGINT(20))
 BEGIN
 BEGIN
 
 
 	  DECLARE isover INT DEFAULT 0;
 	  DECLARE isover INT DEFAULT 0;
@@ -76,7 +77,8 @@ BEGIN
 						IF (f_APPFLAG = 2)
 						IF (f_APPFLAG = 2)
             THEN
             THEN
               SET f_APPFLAG = 90;
               SET f_APPFLAG = 90;
-							SET f_APPFILE = f_AppFromId;
+              SET @mas_offset_num = ifnull((SELECT offset_num FROM trs_data_migration_mas.data_migration_offset WHERE table_name = 'mas_masvideo' AND start_id < f_AppFromId and  end_id >= f_AppFromId), masIdOffset);
+							SET f_APPFILE = f_AppFromId + @mas_offset_num;
 							SET f_AppFromType = 1;
 							SET f_AppFromType = 1;
 						END IF;
 						END IF;
 
 

+ 3 - 14
TRS.WCM.Developer/贵州项目/4_sp_city_appendix.sql

@@ -1,7 +1,8 @@
 
 
 DROP PROCEDURE IF EXISTS sp_city_appdendix;
 DROP PROCEDURE IF EXISTS sp_city_appdendix;
 DELIMITER $$
 DELIMITER $$
-CREATE PROCEDURE sp_city_appdendix(IN n INT)
+CREATE PROCEDURE sp_city_appdendix(IN n INT,
+                                   IN masIdOffset BIGINT(20))
 
 
   BEGIN
   BEGIN
 
 
@@ -14,8 +15,6 @@ CREATE PROCEDURE sp_city_appdendix(IN n INT)
     #附件迁移
     #附件迁移
     # 迁移 MAS 视频,6个wcm节点的视频是在一起的。可重复执行。
     # 迁移 MAS 视频,6个wcm节点的视频是在一起的。可重复执行。
     # 支持断点续传,上一次迁移的最后一个 xx ID
     # 支持断点续传,上一次迁移的最后一个 xx ID
-    SET @prevMasId = ifnull((SELECT prev_id from data_migration_log where table_name = 'mas_masid'), 0);
-    SET @prevMasVideoId = ifnull((SELECT prev_id from data_migration_log where table_name = 'mas_masvideo'), 0);
     SET @prevMaterialquoteId = ifnull((SELECT prev_id from data_migration_log where table_name = 'xwcmmaterial'), 0);
     SET @prevMaterialquoteId = ifnull((SELECT prev_id from data_migration_log where table_name = 'xwcmmaterial'), 0);
     SET @prevAppendixId = ifnull((SELECT prev_id from data_migration_log where table_name = 'wcmappendix'), 0);
     SET @prevAppendixId = ifnull((SELECT prev_id from data_migration_log where table_name = 'wcmappendix'), 0);
 
 
@@ -29,17 +28,7 @@ CREATE PROCEDURE sp_city_appdendix(IN n INT)
     #处理素材表
     #处理素材表
     SET @maxNAppendixId= IFNULL((SELECT MAX(appendixId) from trs_hycloud_iip.wcmappendix),0);
     SET @maxNAppendixId= IFNULL((SELECT MAX(appendixId) from trs_hycloud_iip.wcmappendix),0);
     SET @nappendixIdOffset = @maxNAppendixId - @prevMaterialquoteId;
     SET @nappendixIdOffset = @maxNAppendixId - @prevMaterialquoteId;
-    call sp_data_migration_xwcmmaterial(@prevMaterialquoteId, @nappendixIdOffset, @docIdOffset);
-
-    #mas视频迁移
-    SET @maxMasId = IFNULL((SELECT MAX(ID) from trs_mas.mas_masid),0);
-    SET @masIdOffset = @maxMasId - @prevMasId;
-    SET @maxMasVideoId = IFNULL((SELECT MAX(ID) from trs_mas.mas_videostream),0);
-    SET @masVideoIdOffset = @maxMasVideoId - @prevMasVideoId;
-    call sp_data_migration_masid(@prevMasId, @masIdOffset);
-    call sp_data_migration_masvideo(@prevMasVideoId, @masVideoIdOffset);
-    call sp_data_migration_mas_videostream(@prevMasVideoId, @masVideoIdOffset);
-    call sp_data_migration_mas_videostream(@prevMasVideoId, @masVideoIdOffset);
+    call sp_data_migration_xwcmmaterial(@prevMaterialquoteId, @nappendixIdOffset, @docIdOffset, masIdOffset);
 
 
   END $$
   END $$
 DELIMITER ;
 DELIMITER ;

+ 29 - 0
TRS.WCM.Developer/贵州项目/4_sp_city_mas.sql

@@ -0,0 +1,29 @@
+
+DROP PROCEDURE IF EXISTS sp_city_mas;
+DELIMITER $$
+CREATE PROCEDURE sp_city_mas()
+
+  BEGIN
+
+    #附件迁移
+    # 迁移 MAS 视频,6个wcm节点的视频是在一起的。可重复执行。
+    # 支持断点续传,上一次迁移的最后一个 xx ID
+    SET @prevMasId = ifnull((SELECT prev_id from data_migration_log where table_name = 'mas_masid'), 0);
+    SET @prevMasVideoId = ifnull((SELECT prev_id from data_migration_log where table_name = 'mas_masvideo'), 0);
+    SET @prevVideoStream = ifnull((SELECT prev_id from data_migration_log where table_name = 'mas_videostream'), 0);
+    SET @prevPublishedVideo = ifnull((SELECT prev_id from data_migration_log where table_name = 'mas_publishedvideo'), 0);
+    
+    #mas视频迁移
+    SET @maxMasId = IFNULL((SELECT MAX(ID) from trs_mas.mas_masid),0);
+    SET @masIdOffset = @maxMasId - @prevMasId;
+    SET @maxMasVideoId = IFNULL((SELECT MAX(ID) from trs_mas.mas_masvideo),0);
+    SET @masVideoIdOffset = @maxMasVideoId - @prevMasVideoId;
+    SET @maxVideostreamId = IFNULL((SELECT MAX(ID) from trs_mas.mas_videostream),0);
+    SET @masVideostreamIdOffset = @maxVideostreamId - @prevVideoStream;
+    call sp_data_migration_masid(@prevMasId, @masIdOffset);
+    call sp_data_migration_masvideo(@prevMasVideoId, @masIdOffset);
+    call sp_data_migration_mas_videostream(@prevVideoStream, @masVideostreamIdOffset, @masIdOffset);
+    call sp_data_migration_mas_publishedvideo(@prevPublishedVideo, @masIdOffset);
+
+  END $$
+DELIMITER ;

+ 12 - 3
TRS.WCM.Developer/贵州项目/readme.md

@@ -4,6 +4,13 @@
 ## 迁移方式(新)
 ## 迁移方式(新)
 
 
 1. 数据准备与wiki中相同。中间库可以根据节点自己区分。
 1. 数据准备与wiki中相同。中间库可以根据节点自己区分。
+```sql
+#删除有问题的素材库数据
+DELETE FROM xwcmmaterial WHERE MATERIALTYPE = 1 and FILENAME is NULL;
+DELETE FROM xwcmmaterial WHERE MATERIALTYPE = 2 and MASID is NULL;
+#查询表中是否存在唯一建重复
+SELECT DOCID,CHNLID FROM wcmchnldoc GROUP BY DOCID,CHNLID HAVING COUNT(1) > 1;
+```
    
    
 2. 迁移站点,栏目,视图,模板等基本数据。(用户可以在新系统中增加角色,调整视图和模板)
 2. 迁移站点,栏目,视图,模板等基本数据。(用户可以在新系统中增加角色,调整视图和模板)
   ```sql
   ```sql
@@ -16,7 +23,7 @@
        ```sql
        ```sql
          SELECT prev_id from data_migration_log where table_name = 'xwcmtableinfo';
          SELECT prev_id from data_migration_log where table_name = 'xwcmtableinfo';
          # 注意该脚本结果为sql 脚本。需要复制脚本再执行一遍。
          # 注意该脚本结果为sql 脚本。需要复制脚本再执行一遍。
-         call update_data_table(迁移起始tabelinfoID);
+         call update_data_table('_city4',迁移起始tabelinfoID);
        ```
        ```
       * 中间库修改元数据表名;
       * 中间库修改元数据表名;
       ```sql
       ```sql
@@ -44,10 +51,12 @@
    ```sql 
    ```sql 
    call sp_city_data(节点ID)
    call sp_city_data(节点ID)
    ```
    ```
-   * 迁移附件
+   * 迁移附件 (* 注意必须要对迁移数据表建主键索引)
    ``` 
    ``` 
-   #迁移附件和mas数据
+   #迁移附件
    call sp_city_appendix(节点ID);
    call sp_city_appendix(节点ID);
+   #mas数据迁移
+   call sp_city_mas();
    ```
    ```
    * 修改元数据中相关图片,相关视频字段不对(* 该脚本对增量支持不友好)
    * 修改元数据中相关图片,相关视频字段不对(* 该脚本对增量支持不友好)
    ```sql
    ```sql

+ 0 - 10
TRS.WCM.Developer/贵州项目/全量迁移/3_sp_data_migration_wcmmetatable.sql

@@ -61,16 +61,6 @@ CREATE PROCEDURE sp_data_migration_wcmmetatable(IN citySuffix VARCHAR(20),
 
 
             if prevTableInfoId = 0
             if prevTableInfoId = 0
               then
               then
-                #更新当前表的ID字段名称
-                set @id_field_sql = concat('ALTER TABLE trs_hycloud_iip.wcmmetatable', f_TABLENAME, citySuffix,
-                ' CHANGE COLUMN `WCMMetaTable',f_TABLENAME,
-                                 'ID` `wcmmetatable',f_TABLENAME, citySuffix,
-                                 'ID`  int(11) NOT NULL;');
-                select concat('更新ID字段元数据sql: ', @id_field_sql ) info;
-                prepare stmt from @id_field_sql;
-                EXECUTE stmt;
-                deallocate prepare stmt;
-
                 #设置ID的最大值
                 #设置ID的最大值
                 set @max_sql = concat('SELECT ifnull(max(wcmmetatable', f_TABLENAME, citySuffix, 'ID), 0)into @meta_data_id from trs_hycloud_iip.wcmmetatable', f_TABLENAME, citySuffix);
                 set @max_sql = concat('SELECT ifnull(max(wcmmetatable', f_TABLENAME, citySuffix, 'ID), 0)into @meta_data_id from trs_hycloud_iip.wcmmetatable', f_TABLENAME, citySuffix);
                 prepare stmt from @max_sql;
                 prepare stmt from @max_sql;