浏览代码

脚本调整05.27.17

lijihong 6 年之前
父节点
当前提交
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 FromType 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 AttachVideo 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;
 DELIMITER $$
-CREATE PROCEDURE update_data_table(IN prevtabelId BIGINT(20))
+CREATE PROCEDURE update_data_table(
+                            IN citySuffix VARCHAR(20),
+                            IN prevtabelId BIGINT(20))
 	BEGIN 
 	
 	DECLARE isover INT DEFAULT 0;
@@ -48,8 +50,6 @@ CREATE PROCEDURE update_data_table(IN prevtabelId BIGINT(20))
     f_OWNERTYPE,
     f_OWNERID
     ;
-
-    select concat('开始修改 ', '元数据字段') info;
     set @i = 0;
     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);
 
               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());
               prepare stmt from @log_sql;
               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;
           EXECUTE stmt;
           deallocate prepare stmt;
+          call setOffset(migr_table_name, masVideoIdOffset, prevMasVideoId, @ID);
 
     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;
 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))
 	BEGIN 
 	
@@ -181,7 +183,7 @@ CREATE PROCEDURE sp_data_migration_mas_videostream(IN prevMasVideoId BIGINT(20),
         THEN
 
             SET @ID = f_ID;
-            SET f_ID = f_ID + masVideoIdOffset;
+            SET f_ID = f_ID + videostreamIdOffset;
             SET f_VIDEOID = f_VIDEOID + masVideoIdOffset;
 
             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;
           EXECUTE stmt;
           deallocate prepare stmt;
+          call setOffset(migr_table_name, masVideoIdOffset, prevMasVideoId, @ID);
 
     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;
             EXECUTE stmt;
             deallocate prepare stmt;
-
+            call setOffset(migr_table_name, masIdOffset, prevMasId, @ID);
       END IF ;
 
       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;
           EXECUTE stmt;
           deallocate prepare stmt;
+          call setOffset(migr_table_name, masVideoIdOffset, prevMasVideoId, @ID);
 
     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 $$
 CREATE PROCEDURE sp_data_migration_xwcmmaterial(IN prevAppendixId BIGINT(20),
                                               IN appendixIdOffset BIGINT(20),
-                                              IN docIdOffset BIGINT(20))
+                                              IN docIdOffset BIGINT(20),
+                                              IN masIdOffset BIGINT(20))
 BEGIN
 
 	  DECLARE isover INT DEFAULT 0;
@@ -76,7 +77,8 @@ BEGIN
 						IF (f_APPFLAG = 2)
             THEN
               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;
 						END IF;
 

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

@@ -1,7 +1,8 @@
 
 DROP PROCEDURE IF EXISTS sp_city_appdendix;
 DELIMITER $$
-CREATE PROCEDURE sp_city_appdendix(IN n INT)
+CREATE PROCEDURE sp_city_appdendix(IN n INT,
+                                   IN masIdOffset BIGINT(20))
 
   BEGIN
 
@@ -14,8 +15,6 @@ CREATE PROCEDURE sp_city_appdendix(IN n INT)
     #附件迁移
     # 迁移 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 @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);
 
@@ -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 @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 $$
 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中相同。中间库可以根据节点自己区分。
+```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. 迁移站点,栏目,视图,模板等基本数据。(用户可以在新系统中增加角色,调整视图和模板)
   ```sql
@@ -16,7 +23,7 @@
        ```sql
          SELECT prev_id from data_migration_log where table_name = 'xwcmtableinfo';
          # 注意该脚本结果为sql 脚本。需要复制脚本再执行一遍。
-         call update_data_table(迁移起始tabelinfoID);
+         call update_data_table('_city4',迁移起始tabelinfoID);
        ```
       * 中间库修改元数据表名;
       ```sql
@@ -44,10 +51,12 @@
    ```sql 
    call sp_city_data(节点ID)
    ```
-   * 迁移附件
+   * 迁移附件 (* 注意必须要对迁移数据表建主键索引)
    ``` 
-   #迁移附件和mas数据
+   #迁移附件
    call sp_city_appendix(节点ID);
+   #mas数据迁移
+   call sp_city_mas();
    ```
    * 修改元数据中相关图片,相关视频字段不对(* 该脚本对增量支持不友好)
    ```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
               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的最大值
                 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;