فهرست منبع

脚本支持增量更新数据

lijihong 6 سال پیش
والد
کامیت
228d8178c6
30فایلهای تغییر یافته به همراه426 افزوده شده و 247 حذف شده
  1. 6 3
      TRS.WCM.Developer/贵州项目/1_data_migration_logger.sql
  2. 39 55
      TRS.WCM.Developer/贵州项目/1_data_migration_offset.sql
  3. 1 1
      TRS.WCM.Developer/贵州项目/3_sp_data_migration_mas_publishedvideo.sql
  4. 1 1
      TRS.WCM.Developer/贵州项目/3_sp_data_migration_mas_videostream.sql
  5. 1 1
      TRS.WCM.Developer/贵州项目/3_sp_data_migration_masid.sql
  6. 1 1
      TRS.WCM.Developer/贵州项目/3_sp_data_migration_masvideo.sql
  7. 5 2
      TRS.WCM.Developer/贵州项目/3_sp_data_migration_wcmappendix.sql
  8. 9 4
      TRS.WCM.Developer/贵州项目/3_sp_data_migration_wcmchannel.sql
  9. 14 7
      TRS.WCM.Developer/贵州项目/3_sp_data_migration_wcmchannelchildindexquote.sql
  10. 9 8
      TRS.WCM.Developer/贵州项目/3_sp_data_migration_wcmchannelsyn.sql
  11. 17 6
      TRS.WCM.Developer/贵州项目/3_sp_data_migration_wcmchnldoc.sql
  12. 17 11
      TRS.WCM.Developer/贵州项目/3_sp_data_migration_wcmdocument.sql
  13. 11 6
      TRS.WCM.Developer/贵州项目/3_sp_data_migration_wcmfolderpublishconfig.sql
  14. 76 0
      TRS.WCM.Developer/贵州项目/3_sp_data_migration_wcmmetablexx.sql
  15. 9 14
      TRS.WCM.Developer/贵州项目/3_sp_data_migration_wcmmetatable.sql
  16. 17 8
      TRS.WCM.Developer/贵州项目/3_sp_data_migration_wcmtemplate.sql
  17. 14 8
      TRS.WCM.Developer/贵州项目/3_sp_data_migration_wcmtemplateargument.sql
  18. 14 8
      TRS.WCM.Developer/贵州项目/3_sp_data_migration_wcmtemplateemploy.sql
  19. 9 3
      TRS.WCM.Developer/贵州项目/3_sp_data_migration_wcmtemplatenest.sql
  20. 15 8
      TRS.WCM.Developer/贵州项目/3_sp_data_migration_wcmtemplatequote.sql
  21. 2 1
      TRS.WCM.Developer/贵州项目/3_sp_data_migration_wcmwebsite.sql
  22. 4 2
      TRS.WCM.Developer/贵州项目/3_sp_data_migration_xwcmclassinfo.sql
  23. 12 4
      TRS.WCM.Developer/贵州项目/3_sp_data_migration_xwcmclassinfoview.sql
  24. 10 6
      TRS.WCM.Developer/贵州项目/3_sp_data_migration_xwcmdbfieldinfo.sql
  25. 15 5
      TRS.WCM.Developer/贵州项目/3_sp_data_migration_xwcmmetaviewemployer.sql
  26. 1 1
      TRS.WCM.Developer/贵州项目/3_sp_data_migration_xwcmmetaviewfieldgroup.sql
  27. 2 1
      TRS.WCM.Developer/贵州项目/3_sp_data_migration_xwcmtableinfo.sql
  28. 23 7
      TRS.WCM.Developer/贵州项目/3_sp_data_migration_xwcmviewfieldinfo.sql
  29. 8 5
      TRS.WCM.Developer/贵州项目/3_sp_data_migration_xwcmviewinfo.sql
  30. 64 60
      TRS.WCM.Developer/贵州项目/4_sp_city_n.sql

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

@@ -8,6 +8,7 @@ USE trs_data_migration;
 CREATE TABLE data_migration_log(
   table_name VARCHAR(100) NOT NULL COMMENT '迁移的表名',
   prev_id BIGINT(20) NOT NULL COMMENT '上一条数据ID',
+  migration_time datetime NOT NULL default CURRENT_TIMESTAMP,
   PRIMARY KEY (table_name)
 );
 
@@ -18,7 +19,7 @@ CREATE TABLE data_migration_log(
 SET GLOBAL log_bin_trust_function_creators = TRUE;
 DROP FUNCTION IF EXISTS build_migration_log_sql;
 DELIMITER $$
-CREATE FUNCTION build_migration_log_sql(table_name VARCHAR(100), id BIGINT(20))
+CREATE FUNCTION build_migration_log_sql(table_name VARCHAR(100), id BIGINT(20), curtime datetime)
   RETURNS VARCHAR(255)
   BEGIN
     DECLARE x VARCHAR(255) DEFAULT '';
@@ -27,11 +28,13 @@ CREATE FUNCTION build_migration_log_sql(table_name VARCHAR(100), id BIGINT(20))
     SET x =  concat('insert into ',
                     'trs_data_migration.data_migration_log (',
                     'table_name, ',
-                    'prev_id',
+                    'prev_id,',
+                    'migration_time',
                     ') ',
                     'values(',
                     '\'', table_name, '\',',
-                    id,
+                    id, ',',
+                    '\'', curtime, '\'',
                     ') ',
                     'on duplicate key update ',
                     'prev_id = ', id);

+ 39 - 55
TRS.WCM.Developer/贵州项目/1_data_migration_offset.sql

@@ -1,62 +1,46 @@
-use trs_data_migration;
--- 对于在其他表有外键的记录,
+USE trs_data_migration;-- 对于在其他表有外键的记录,
 -- 建立offset表,记录迁移的次数、上次迁移的id、偏移量用于增量时能够获取到每次偏移量的变化
-CREATE  TABLE `site_offset`(
-  `times` SMALLINT NOT NULL comment '迁移次数',
-  `previous_id` INT(11) NOT NULL comment '上次迁移的最大id',
-  `offset` INT(11) NOT NULL comment '偏移量',
-  PRIMARY KEY (`times`)
+CREATE  TABLE `data_migration_offset`(
+  `id` INT(11) NOT NULL COMMENT '数据表ID',
+  `table_name` VARCHAR(100) NOT NULL COMMENT '迁移的表名',
+  `offset_num` BIGINT(20) NOT NULL comment '偏移量',
+  `start_id` BIGINT(20) NOT NULL comment '起始id',
+  `end_id` BIGINT(20) NOT NULL comment '终止ID',
+  `crtime` datetime default CURRENT_TIMESTAMP NOT NULL comment '时间',
+  PRIMARY KEY (`id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
-CREATE  TABLE `channel_offset`(
-  `times` SMALLINT NOT NULL comment '迁移次数',
-  `previous_id` INT(11) NOT NULL comment '上次迁移的最大id',
-  `offset` INT(11) NOT NULL comment '偏移量',
-  PRIMARY KEY (`times`)
+CREATE  TABLE `meta_data`(
+  `metadat_id` BIGINT(20) NOT NULL comment '元数据ID',
+  `channel_id` BIGINT(20) NOT NULL comment '栏目ID',
+  PRIMARY KEY (`metadat_id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
-CREATE  TABLE `template_offset`(
-  `times` SMALLINT NOT NULL comment '迁移次数',
-  `previous_id` INT(11) NOT NULL comment '上次迁移的最大id',
-  `offset` INT(11) NOT NULL comment '偏移量',
-  PRIMARY KEY (`times`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
-CREATE  TABLE `document_offset`(
-  `times` SMALLINT NOT NULL comment '迁移次数',
-  `previous_id` INT(11) NOT NULL comment '上次迁移的最大id',
-  `offset` INT(11) NOT NULL comment '偏移量',
-  PRIMARY KEY (`times`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+DROP PROCEDURE
+IF
+	EXISTS setOffset;
 
-CREATE  TABLE `viewInfo_offset`(
-  `times` SMALLINT NOT NULL comment '迁移次数',
-  `previous_id` INT(11) NOT NULL comment '上次迁移的最大id',
-  `offset` INT(11) NOT NULL comment '偏移量',
-  PRIMARY KEY (`times`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
-CREATE  TABLE `tableInfo_offset`(
-  `times` SMALLINT NOT NULL comment '迁移次数',
-  `previous_id` INT(11) NOT NULL comment '上次迁移的最大id',
-  `offset` INT(11) NOT NULL comment '偏移量',
-  PRIMARY KEY (`times`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
-CREATE TABLE `data_migration_offset` (
-  `tableName` varchar(50) NOT NULL DEFAULT '',
-  `offset` int(11) DEFAULT NULL,
-  PRIMARY KEY (`tableName`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
-DROP PROCEDURE IF EXISTS setOffset;
 DELIMITER $$
-CREATE PROCEDURE setOffset(t_name varchar(50),_offset int(11))
-BEGIN
-	set @x = IFNULL((select offset from data_migration_offset where tableName = t_name),0);
-	IF @x = 0 THEN
-    INSERT into data_migration_offset values(t_name ,_offset);
-	END IF;
-END $$
-
-
+CREATE PROCEDURE setOffset ( IN t_name VARCHAR ( 100 ), IN _offset BIGINT ( 20 ), IN _start_id BIGINT ( 20 ),
+IN _end_id BIGINT ( 20 ) 
+) BEGIN
+	
+	SET @id = IFNULL( ( SELECT id FROM data_migration_offset WHERE table_name = t_name AND offset_num = _offset AND start_id = _start_id ), 0 );
+	IF
+		@id = 0 THEN
+			INSERT INTO data_migration_offset ( id, table_name, offset_num, start_id, end_id ) SELECT
+			IFNULL( max( id ), 0 ) + 1,
+			t_name,
+			_offset,
+			_start_id,
+			_end_id 
+			FROM
+				data_migration_offset;
+		ELSE 
+			UPDATE data_migration_offset 
+			  SET end_id = _end_id
+			WHERE
+				id = @id ;
+		END IF;
+
+END $$

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

@@ -549,7 +549,7 @@ CREATE PROCEDURE sp_data_migration_mas_publishedvideo(IN prevMasVideoId BIGINT(2
                   f_YEAR
                 );
 
-          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @ID);
+          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @ID, now());
 
           prepare stmt from @log_sql;
           EXECUTE stmt;

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

@@ -286,7 +286,7 @@ CREATE PROCEDURE sp_data_migration_mas_videostream(IN prevMasVideoId BIGINT(20),
                   f_VIDEOID
                 );
 
-          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @ID);
+          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @ID, now());
 
           prepare stmt from @log_sql;
           EXECUTE stmt;

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

@@ -92,7 +92,7 @@ CREATE PROCEDURE sp_data_migration_masid(IN prevMasId BIGINT(20),
                     f_srcObjType
                   );
 
-            SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @ID);
+            SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @ID, now());
             prepare stmt from @log_sql;
             EXECUTE stmt;
             deallocate prepare stmt;

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

@@ -549,7 +549,7 @@ CREATE PROCEDURE sp_data_migration_masvideo(IN prevMasVideoId BIGINT(20),
                   f_YEAR
                 );
 
-          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @ID);
+          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @ID, now());
 
           prepare stmt from @log_sql;
           EXECUTE stmt;

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

@@ -11,6 +11,7 @@ CREATE PROCEDURE sp_data_migration_wcmappendix(IN prevAppendixId BIGINT(20),
 	  DECLARE isover INT DEFAULT 0;
 
     DECLARE migr_table_name varchar(255) DEFAULT 'wcmappendix';
+    DECLARE doc_migr_table_name varchar(255) DEFAULT 'wcmdocument';
 
     DECLARE f_APPENDIXID int(11) DEFAULT 0;
     DECLARE f_APPDOCID int(11) DEFAULT 0;
@@ -117,7 +118,8 @@ CREATE PROCEDURE sp_data_migration_wcmappendix(IN prevAppendixId BIGINT(20),
 
             SET @APPENDIXID = f_APPENDIXID;
             SET f_APPENDIXID = f_APPENDIXID + appendixIdOffset;
-            SET f_APPDOCID = f_APPDOCID + docIdOffset;
+            SET @doc_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = migr_table_name AND start_id < f_APPDOCID and  end_id >= f_APPDOCID), 0);
+            SET f_APPDOCID = f_APPDOCID + @doc_offset_num;
 
             insert into trs_hycloud_iip.wcmappendix
               (
@@ -176,11 +178,12 @@ CREATE PROCEDURE sp_data_migration_wcmappendix(IN prevAppendixId BIGINT(20),
                   f_AppFromId
                 );
 
-          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @APPENDIXID);
+          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @APPENDIXID, now());
 
           prepare stmt from @log_sql;
           EXECUTE stmt;
           deallocate prepare stmt;
+          call trs_data_migration.setOffset(migr_table_name, appendixIdOffset, prevAppendixId, @APPENDIXID);
     END IF ;
 
 		FETCH cur INTO

+ 9 - 4
TRS.WCM.Developer/贵州项目/3_sp_data_migration_wcmchannel.sql

@@ -4,13 +4,13 @@ use trs_data_migration;
 DROP PROCEDURE IF EXISTS sp_data_migration_wcmchannel;
 DELIMITER $$
 CREATE PROCEDURE sp_data_migration_wcmchannel(IN prevChnlId BIGINT(20),
-                                              IN siteIdOffset BIGINT(20),
                                               IN channelIdOffset BIGINT(20))
 	BEGIN 
 	
     DECLARE isover INT DEFAULT 0;
 
     DECLARE migr_table_name varchar(255) DEFAULT 'wcmchannel';
+    DECLARE site_migr_table_name varchar(255) DEFAULT 'wcmwebsite';
 
     DECLARE f_CHANNELID int DEFAULT 0;
     DECLARE f_SITEID int DEFAULT 0;
@@ -190,8 +190,12 @@ CREATE PROCEDURE sp_data_migration_wcmchannel(IN prevChnlId BIGINT(20),
 
             SET @CHANNELID = f_CHANNELID;
             SET f_CHANNELID = f_CHANNELID + channelIdOffset;
-            SET f_SITEID = f_SITEID + siteIdOffset;
-            SET f_PARENTID = f_PARENTID + channelIdOffset;
+
+            SET @site_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = site_migr_table_name AND start_id < f_SITEID and  end_id >= f_SITEID), 0);
+            SET f_SITEID = f_SITEID + @site_offset_num;
+
+            SET @channel_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = migr_table_name AND start_id < f_PARENTID and  end_id >= f_PARENTID), 0);
+            SET f_PARENTID = f_PARENTID + @channel_offset_num;
 
             insert into trs_hycloud_iip.wcmchannel
               (
@@ -300,11 +304,12 @@ CREATE PROCEDURE sp_data_migration_wcmchannel(IN prevChnlId BIGINT(20),
                   f_CHNLDESCPINYIN
                 );
 
-          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @CHANNELID);
+          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @CHANNELID, now());
 
           prepare stmt from @log_sql;
           EXECUTE stmt;
           deallocate prepare stmt;
+          call trs_data_migration.setOffset(migr_table_name, channelIdOffset, prevChnlId, @CHANNELID);
     END IF ;
 
 		FETCH cur INTO

+ 14 - 7
TRS.WCM.Developer/贵州项目/3_sp_data_migration_wcmchannelchildindexquote.sql

@@ -3,14 +3,15 @@ use trs_data_migration;
 
 DROP PROCEDURE IF EXISTS sp_data_migration_wcmchannelchildindexquote;
 DELIMITER $$
-CREATE PROCEDURE sp_data_migration_wcmchannelchildindexquote(IN templateIdOffset BIGINT(20),
-                                              IN siteIdOffset BIGINT(20),
-                                              IN channelIdOffset BIGINT(20))
+CREATE PROCEDURE sp_data_migration_wcmchannelchildindexquote()
 	BEGIN 
 	
     DECLARE isover INT DEFAULT 0;
 
     DECLARE migr_table_name varchar(255) DEFAULT 'wcmchannelchildindexquote';
+    DECLARE template_migr_table_name varchar(255) DEFAULT 'wcmtemplate';
+    DECLARE site_migr_table_name varchar(255) DEFAULT 'wcmwebsite';
+    DECLARE channel_migr_table_name varchar(255) DEFAULT 'wcmchannel';
 
     DECLARE  f_TEMPLATEID int(11) DEFAULT '0';
     DECLARE  f_FOLDERTYPE int(11) DEFAULT '0';
@@ -46,16 +47,22 @@ CREATE PROCEDURE sp_data_migration_wcmchannelchildindexquote(IN templateIdOffset
 
     WHILE isover= 0 DO
 
+      SET @template_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = template_migr_table_name AND start_id < f_TEMPLATEID and  end_id >=f_TEMPLATEID), 0);
+      SET f_TEMPLATEID = f_TEMPLATEID + @template_offset_num;
 
-      SET f_TEMPLATEID = f_TEMPLATEID + templateIdOffset;
-      SET f_QUOTECHANNELID = f_QUOTECHANNELID + templateIdOffset;
+      SET @quote_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = channel_migr_table_name AND start_id < f_QUOTECHANNELID and  end_id >=f_QUOTECHANNELID), 0);
+      SET f_QUOTECHANNELID = f_QUOTECHANNELID + @quote_offset_num;
 
       IF (f_FOLDERTYPE = 103)
-        THEN SET f_FOLDERID = f_FOLDERID + siteIdOffset;
+        THEN
+          SET @site_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = site_migr_table_name AND start_id < f_FOLDERID and  end_id >=f_FOLDERID), 0);
+          SET f_FOLDERID = f_FOLDERID + @site_offset_num;
       END IF ;
 
       IF (f_FOLDERTYPE = 101)
-        THEN SET f_FOLDERID = f_FOLDERID + channelIdOffset;
+        THEN
+          SET @channel_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = channel_migr_table_name AND start_id < f_FOLDERID and  end_id >=f_FOLDERID), 0);
+          SET f_FOLDERID = f_FOLDERID + @channel_offset_num;
       END IF ;
 
 

+ 9 - 8
TRS.WCM.Developer/贵州项目/3_sp_data_migration_wcmchannelsyn.sql

@@ -4,13 +4,13 @@ use trs_data_migration;
 DROP PROCEDURE IF EXISTS sp_data_migration_wcmchannelsyn;
 DELIMITER $$
 CREATE PROCEDURE sp_data_migration_wcmchannelsyn(IN prevChannelSynId BIGINT(20),
-                                                  IN channelSynIdOffset BIGINT(20),
-                                                  IN channelIdOffset BIGINT(20))
+                                                  IN channelSynIdOffset BIGINT(20))
 	BEGIN
 	
     DECLARE isover INT DEFAULT 0;
 
     DECLARE migr_table_name varchar(255) DEFAULT 'wcmchannelsyn';
+    DECLARE channel_migr_table_name varchar(255) DEFAULT 'wcmchannel';
 
     DECLARE  f_CHANNELSYNID int(11) DEFAULT NULL;
     DECLARE  f_SRCCHANNEL int(11) DEFAULT NULL;
@@ -42,7 +42,7 @@ CREATE PROCEDURE sp_data_migration_wcmchannelsyn(IN prevChannelSynId BIGINT(20),
       ATTRIBUTE,
       SYNTYPES,
       OPERAFTER,
-      CLASSINFOIDS
+      null
     FROM trs_data_migration.wcmchannelsyn
     ORDER BY CHANNELSYNID ASC ;
 
@@ -78,10 +78,10 @@ CREATE PROCEDURE sp_data_migration_wcmchannelsyn(IN prevChannelSynId BIGINT(20),
         THEN
           SET @CHANNELSYNID = f_CHANNELSYNID;
           SET f_CHANNELSYNID = f_CHANNELSYNID + channelSynIdOffset;
-          SET f_CHANNELSYNID = f_CHANNELSYNID + channelSynIdOffset;
-          SET f_SRCCHANNEL = f_SRCCHANNEL + channelIdOffset;
-          SET f_TOCHANNEL = f_TOCHANNEL + channelIdOffset;
-
+          SET @src_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = channel_migr_table_name AND start_id < f_SRCCHANNEL and  end_id >= f_SRCCHANNEL), 0);
+          SET f_SRCCHANNEL = f_SRCCHANNEL + @src_offset_num;
+          SET @to_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = channel_migr_table_name AND start_id < f_TOCHANNEL and  end_id >= f_TOCHANNEL), 0);
+          SET f_TOCHANNEL = f_TOCHANNEL + @to_offset_num;
 
 
         insert into trs_hycloud_iip.wcmchannelsyn
@@ -117,11 +117,12 @@ CREATE PROCEDURE sp_data_migration_wcmchannelsyn(IN prevChannelSynId BIGINT(20),
               f_CLASSINFOIDS
             );
 
-          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @CHANNELSYNID);
+          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @CHANNELSYNID, now());
 
           prepare stmt from @log_sql;
           EXECUTE stmt;
           deallocate prepare stmt;
+          call trs_data_migration.setOffset(migr_table_name, channelSynIdOffset, prevChannelSynId, @CHANNELSYNID);
     END IF ;
 
 		FETCH cur INTO

+ 17 - 6
TRS.WCM.Developer/贵州项目/3_sp_data_migration_wcmchnldoc.sql

@@ -14,6 +14,10 @@ CREATE PROCEDURE sp_data_migration_wcmchnldoc(IN prevRecId BIGINT(20),
     DECLARE isover INT DEFAULT 0;
 
     DECLARE migr_table_name varchar(255) DEFAULT 'wcmchnldoc';
+    DECLARE doc_migr_table_name varchar(255) DEFAULT 'wcmdocument';
+    DECLARE view_migr_table_name varchar(255) DEFAULT 'xwcmviewinfo';
+    DECLARE site_migr_table_name varchar(255) DEFAULT 'wcmwebsite';
+    DECLARE channel_migr_table_name varchar(255) DEFAULT 'wcmchannel';
 
     DECLARE  f_CHNLID int(11)  DEFAULT '0';
     DECLARE  f_DOCID int(11)  DEFAULT '0';
@@ -160,11 +164,17 @@ CREATE PROCEDURE sp_data_migration_wcmchnldoc(IN prevRecId BIGINT(20),
         THEN
           SET @RECID = f_RECID;
           SET f_RECID = f_RECID + recIdOffset;
-          SET f_DOCID = f_DOCID + docIdOffset;
-          SET f_CHNLID = f_CHNLID + channelIdOffset;
-          SET f_SITEID = f_SITEID + siteIdOffset;
-          SET f_DOCKIND = f_DOCKIND + docKindOffset;
-          SET f_DOCCHANNEL = f_DOCCHANNEL + channelIdOffset;
+
+          SET @doc_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = doc_migr_table_name AND start_id < f_DOCID and  end_id >= f_DOCID), 0);
+          SET f_DOCID = f_DOCID + @doc_offset_num;
+          SET @channel_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = channel_migr_table_name AND start_id < f_CHNLID and  end_id >= f_CHNLID), 0);
+          SET f_CHNLID = f_CHNLID + @channel_offset_num;
+          SET @site_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = site_migr_table_name AND start_id < f_SITEID and  end_id >= f_SITEID), 0);
+          SET f_SITEID = f_SITEID + @site_offset_num;
+          SET @view_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = view_migr_table_name AND start_id < f_DOCKIND and  end_id >= f_DOCKIND), 0);
+          SET f_DOCKIND = f_DOCKIND + @view_offset_num;
+          SET @docchannel_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = channel_migr_table_name AND start_id < f_CHNLID and  end_id >= f_CHNLID), 0);
+          SET f_DOCCHANNEL = f_DOCCHANNEL + @docchannel_offset_num;
           IF (f_DocType = 1)
             THEN
               SET f_DocType = 20;
@@ -256,11 +266,12 @@ CREATE PROCEDURE sp_data_migration_wcmchnldoc(IN prevRecId BIGINT(20),
               -- 迭代十五才有的字段 f_ACTIONUSER
             );
 
-          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @RECID);
+          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @RECID, now());
 
           prepare stmt from @log_sql;
           EXECUTE stmt;
           deallocate prepare stmt;
+          call trs_data_migration.setOffset(migr_table_name, recIdOffset, prevRecId, @RECID);
     END IF ;
 
 		FETCH cur INTO

+ 17 - 11
TRS.WCM.Developer/贵州项目/3_sp_data_migration_wcmdocument.sql

@@ -4,17 +4,17 @@ use trs_data_migration;
 DROP PROCEDURE IF EXISTS sp_data_migration_wcmdocument;
 DELIMITER $$
 CREATE PROCEDURE sp_data_migration_wcmdocument(IN prevDocId BIGINT(20),
-                                              IN docIdOffset BIGINT(20),
-                                              IN viewIdOffset BIGINT(20),
-                                              IN siteIdOffset BIGINT(20),
-                                              IN channelIdOffset BIGINT(20))
+                                              IN docIdOffset BIGINT(20))
 
 	BEGIN 
 	
     DECLARE isover INT DEFAULT 0;
 
     DECLARE migr_table_name varchar(255) DEFAULT 'wcmdocument';
-    
+    DECLARE view_migr_table_name varchar(255) DEFAULT 'xwcmviewinfo';
+    DECLARE site_migr_table_name varchar(255) DEFAULT 'wcmwebsite';
+    DECLARE channel_migr_table_name varchar(255) DEFAULT 'wcmchannel';
+
     DECLARE f_DOCID int(11) DEFAULT 0;
     DECLARE f_DOCCHANNEL int(11) DEFAULT 0;
     DECLARE f_DOCVERSION int(11) DEFAULT 0;
@@ -106,7 +106,7 @@ CREATE PROCEDURE sp_data_migration_wcmdocument(IN prevDocId BIGINT(20),
       DOCVERSION,
       DOCTYPE,
       DOCTITLE,
-      ShortTitle,
+      NULL,
       DOCSOURCE,
       DOCSECURITY,
       DOCSTATUS,
@@ -285,16 +285,21 @@ CREATE PROCEDURE sp_data_migration_wcmdocument(IN prevDocId BIGINT(20),
           #原文档id
           IF (f_OriginDocId > 0)
           THEN
-            SET f_OriginDocId = f_OriginDocId + docIdOffset;
+            SET @doc_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = migr_table_name AND start_id < f_OriginDocId and  end_id >= f_OriginDocId), docIdOffset);
+            SET f_OriginDocId = f_OriginDocId + @doc_offset_num;
           END IF;
           # 栏目ID
-          SET f_DOCCHANNEL = f_DOCCHANNEL + channelIdOffset;
+          SET @channel_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = channel_migr_table_name AND start_id < f_DOCCHANNEL and  end_id >= f_DOCCHANNEL), 0);
+          SET f_DOCCHANNEL = f_DOCCHANNEL + @channel_offset_num;
           # 视图ID
           IF (f_DOCKIND > 0)
-          THEN SET f_DOCKIND = f_DOCKIND + viewIdOffset;
+          THEN
+            SET @view_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = view_migr_table_name AND start_id < f_DOCKIND and  end_id >= f_DOCKIND), 0);
+            SET f_DOCKIND = f_DOCKIND + @view_offset_num;
           END IF ;
           # 站点ID
-          SET f_SITEID = f_SITEID + siteIdOffset;
+          SET @site_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = site_migr_table_name AND start_id < f_SITEID and  end_id >= f_SITEID), 0);
+          SET f_SITEID = f_SITEID + @site_offset_num;
           IF (f_DOCTYPE = 1)
             THEN SET f_DOCTYPE = 20;
           END IF ;
@@ -464,11 +469,12 @@ CREATE PROCEDURE sp_data_migration_wcmdocument(IN prevDocId BIGINT(20),
                 f_OriginDocId
                 );
 
-          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @DOCID);
+          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @DOCID, now());
 
           prepare stmt from @log_sql;
           EXECUTE stmt;
           deallocate prepare stmt;
+          call trs_data_migration.setOffset(migr_table_name, docIdOffset, prevDocId, @DOCID);
     END IF ;
 
 		FETCH cur_doc INTO

+ 11 - 6
TRS.WCM.Developer/贵州项目/3_sp_data_migration_wcmfolderpublishconfig.sql

@@ -4,14 +4,14 @@ use trs_data_migration;
 DROP PROCEDURE IF EXISTS sp_data_migration_wcmfolderpublishconfig;
 DELIMITER $$
 CREATE PROCEDURE sp_data_migration_wcmfolderpublishconfig(IN prevFolderPublishConfigId BIGINT(20),
-                                              IN folderPublishConfigIdOffset BIGINT(20),
-                                              IN siteIdOffset BIGINT(20),
-                                              IN channelIdOffset BIGINT(20))
+                                              IN folderPublishConfigIdOffset BIGINT(20))
 	BEGIN 
 	
     DECLARE isover INT DEFAULT 0;
 
     DECLARE migr_table_name varchar(255) DEFAULT 'wcmfolderpublishconfig';
+    DECLARE site_migr_table_name varchar(255) DEFAULT 'wcmwebsite';
+    DECLARE channel_migr_table_name varchar(255) DEFAULT 'wcmchannel';
 
     DECLARE f_FOLDERPUBLISHCONFIGID int(11) DEFAULT 0;
     DECLARE f_FOLDERTYPE int(11) DEFAULT 0;
@@ -78,11 +78,15 @@ CREATE PROCEDURE sp_data_migration_wcmfolderpublishconfig(IN prevFolderPublishCo
             SET f_FOLDERPUBLISHCONFIGID = f_FOLDERPUBLISHCONFIGID + folderPublishConfigIdOffset;
 
             IF (f_FOLDERTYPE = 103)
-              THEN SET f_FOLDERID = f_FOLDERID + siteIdOffset;
+              THEN
+                SET @site_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = site_migr_table_name AND start_id < f_FOLDERID and  end_id >= f_FOLDERID), 0);
+                SET f_FOLDERID = f_FOLDERID + @site_offset_num;
             END IF ;
 
             IF (f_FOLDERTYPE = 101)
-              THEN SET f_FOLDERID = f_FOLDERID + channelIdOffset;
+              THEN
+                SET @channel_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = channel_migr_table_name AND start_id < f_FOLDERID and  end_id >= f_FOLDERID), 0);
+                SET f_FOLDERID = f_FOLDERID + @channel_offset_num;
             END IF ;
 
 
@@ -115,11 +119,12 @@ CREATE PROCEDURE sp_data_migration_wcmfolderpublishconfig(IN prevFolderPublishCo
                   f_PAGEENCODING
                 );
 
-          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @FOLDERPUBLISHCONFIGID);
+          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @FOLDERPUBLISHCONFIGID, now());
 
           prepare stmt from @log_sql;
           EXECUTE stmt;
           deallocate prepare stmt;
+          call trs_data_migration.setOffset(migr_table_name, folderPublishConfigIdOffset, prevFolderPublishConfigId, @FOLDERPUBLISHCONFIGID);
     END IF ;
 
 		FETCH cur INTO

+ 76 - 0
TRS.WCM.Developer/贵州项目/3_sp_data_migration_wcmmetablexx.sql

@@ -0,0 +1,76 @@
+
+use trs_data_migration;
+
+DROP PROCEDURE IF EXISTS sp_data_migration_wcmmetablexx;
+DELIMITER $$
+CREATE PROCEDURE sp_data_migration_wcmmetablexx(IN metableName VARCHAR(255),
+                                              IN prevDocId BIGINT(20),
+                                              IN docIdOffset BIGINT(20),
+                                              IN channelIdOffset BIGINT(20))
+	BEGIN 
+
+	  DECLARE isover INT DEFAULT 0;
+	  DECLARE channel_migr_table_name varchar(255) DEFAULT 'wcmchannel';
+
+    DECLARE  f_CHNLID int(11)  DEFAULT '0';
+    DECLARE  f_METADATAID int(11)  DEFAULT '0';
+
+	  DECLARE cur CURSOR FOR
+		SELECT
+      channel_id,
+      metadat_id
+    FROM trs_data_migration.meta_data
+		ORDER BY metadat_id asc;
+
+	DECLARE CONTINUE HANDLER FOR NOT FOUND SET isover = 1;
+	
+	OPEN cur;
+	
+	FETCH cur INTO
+    f_CHNLID,
+    f_METADATAID;
+
+
+    select concat('开始迁移 ', metableName) info;
+
+    WHILE isover= 0 DO
+
+      # 支持断点续传
+      IF (f_METADATAID > prevDocId)
+
+        THEN
+
+          SET @metadataId = f_METADATAID;
+          SET f_METADATAID = f_METADATAID + docIdOffset;
+          SET @channel_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = channel_migr_table_name AND start_id < f_CHNLID and  end_id >= f_CHNLID), 0);
+          SET f_CHNLID = f_CHNLID + @channel_offset_num;
+          #sql 修改数据
+          SET @up_sql = concat('UPDATE trs_hycloud_iip.', metableName,
+                               ' SET MetaDataId = ', f_METADATAID,
+                               ', ChannelId = ', f_CHNLID,
+                               ' WHERE MetaDataId = ', @metadataId);
+          prepare stmt from @up_sql;
+          EXECUTE stmt;
+          deallocate prepare stmt;
+
+          SET @log_sql = trs_data_migration.build_migration_log_sql(metableName, @metadataId, now());
+          prepare stmt from @log_sql;
+          EXECUTE stmt;
+          deallocate prepare stmt;
+
+          call trs_data_migration.setOffset(metableName, docIdOffset, prevDocId, @metadataId);
+
+    END IF ;
+
+		FETCH cur INTO
+    f_CHNLID,
+    f_METADATAID;
+		
+	END WHILE;
+	
+	CLOSE cur;
+
+  select concat('完成迁移 ', metableName) info;
+
+  END $$
+DELIMITER ;

+ 9 - 14
TRS.WCM.Developer/贵州项目/3_sp_data_migration_wcmmetatable.sql

@@ -14,6 +14,8 @@ CREATE PROCEDURE sp_data_migration_wcmmetatable(IN citySuffix VARCHAR(20),
     DECLARE isover INT DEFAULT 0;
     DECLARE f_TABLEINFOID INT DEFAULT 0;
     DECLARE f_TABLENAME VARCHAR(200) DEFAULT NULL;
+    DECLARE f_CHNLID int(11)  DEFAULT '0';
+    DECLARE f_DOCID int(11)  DEFAULT '0';
 
 
     DECLARE cur CURSOR FOR
@@ -32,8 +34,6 @@ CREATE PROCEDURE sp_data_migration_wcmmetatable(IN citySuffix VARCHAR(20),
       f_TABLENAME
     ;
 
-
-
     WHILE isover= 0 DO
 
       # 断点续传
@@ -50,24 +50,19 @@ CREATE PROCEDURE sp_data_migration_wcmmetatable(IN citySuffix VARCHAR(20),
 
             select concat('开始更新 ', 'wcmmetatable', f_TABLENAME, '.MetaDataId & ChannelId') info;
 
-            # 由于元数据表是动态生成的,执行存储过程前,需要提前将所有元数据表(结构+数据)直接复制至海云
-            # 迁移后的元数据,其元数据ID不能和其他元数据表中的ID发生冲突,需要更改,因此有了以下SQL
-            SET @log_sql = concat('UPDATE trs_hycloud_iip.wcmmetatable', f_TABLENAME,
-                              ' SET MetaDataId = MetaDataId + ', docIdOffset,
-                              ', ChannelId = ChannelId + ', channelIdOffset,
-                              ' WHERE MetaDataId > ', prevDocId);
-
-            select concat('更新元数据sql: ', @log_sql );
-            prepare stmt from @log_sql;
+            set @del_sql = concat('delete from trs_data_migration.meta_data');
+            prepare stmt from @del_sql;
             EXECUTE stmt;
             deallocate prepare stmt;
 
-            SET @log_sql = trs_data_migration.build_migration_log_sql(concat('wcmmetatable', f_TABLENAME), -1);
-
-            prepare stmt from @log_sql;
+            SET @doc_sql = concat('INSERT INTO trs_data_migration.meta_data(metadat_id, channel_id) SELECT MetaDataId,ChannelId FROM trs_hycloud_iip.wcmmetatable', f_TABLENAME,
+                              ' WHERE MetaDataId >  ', prevDocId);
+            prepare stmt from @doc_sql;
             EXECUTE stmt;
             deallocate prepare stmt;
 
+            call sp_data_migration_wcmmetablexx(concat('wcmmetatable', f_TABLENAME), prevDocId, docIdOffset);
+
             select concat('完成更新 ', 'wcmmetatable', f_TABLENAME, '.MetaDataId & ChannelId') info;
         END IF ;
 

+ 17 - 8
TRS.WCM.Developer/贵州项目/3_sp_data_migration_wcmtemplate.sql

@@ -4,14 +4,14 @@ use trs_data_migration;
 DROP PROCEDURE IF EXISTS sp_data_migration_wcmtemplate;
 DELIMITER $$
 CREATE PROCEDURE sp_data_migration_wcmtemplate(IN prevTemplateId BIGINT(20),
-                                              IN templateIdOffset BIGINT(20),
-                                              IN siteIdOffset BIGINT(20),
-                                              IN channelIdOffset BIGINT(20))
+                                              IN templateIdOffset BIGINT(20))
 	BEGIN 
 	
     DECLARE isover INT DEFAULT 0;
 
     DECLARE migr_table_name varchar(255) DEFAULT 'wcmtemplate';
+    DECLARE site_migr_table_name varchar(255) DEFAULT 'wcmwebsite';
+    DECLARE channel_migr_table_name varchar(255) DEFAULT 'wcmchannel';
 
 
     DECLARE  f_TEMPID int(11) DEFAULT '0';
@@ -105,19 +105,27 @@ CREATE PROCEDURE sp_data_migration_wcmtemplate(IN prevTemplateId BIGINT(20),
             SET f_TEMPID = f_TEMPID + templateIdOffset;
 
             IF (f_FOLDERTYPE = 103)
-              THEN SET f_FOLDERID = f_FOLDERID + siteIdOffset;
+              THEN
+                SET @site_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = site_migr_table_name AND start_id < f_FOLDERID and  end_id >= f_FOLDERID), 0);
+                SET f_FOLDERID = f_FOLDERID + @site_offset_num;
             END IF ;
 
             IF (f_FOLDERTYPE = 101)
-              THEN SET f_FOLDERID = f_FOLDERID + channelIdOffset;
+              THEN
+                SET @channel_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = channel_migr_table_name AND start_id < f_FOLDERID and  end_id >= f_FOLDERID), 0);
+                SET f_FOLDERID = f_FOLDERID + @channel_offset_num;
             END IF ;
 
             IF (f_ROOTTYPE = 103)
-              THEN SET f_ROOTID = f_ROOTID + siteIdOffset;
+              THEN
+                SET @root_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = site_migr_table_name AND start_id < f_ROOTID and  end_id >= f_ROOTID), 0);
+                SET f_ROOTID = f_ROOTID + @root_offset_num;
             END IF ;
 
             IF (f_ROOTTYPE = 101)
-              THEN SET f_ROOTID = f_ROOTID + channelIdOffset;
+              THEN
+                SET @rootcl_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = site_migr_table_name AND start_id < f_ROOTID and  end_id >= f_ROOTID), 0);
+                SET f_ROOTID = f_ROOTID + @rootcl_offset_num;
             END IF ;
 
 
@@ -168,11 +176,12 @@ CREATE PROCEDURE sp_data_migration_wcmtemplate(IN prevTemplateId BIGINT(20),
                   f_VISUAL
                 );
 
-          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @TEMPID);
+          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @TEMPID, now());
 
           prepare stmt from @log_sql;
           EXECUTE stmt;
           deallocate prepare stmt;
+          call trs_data_migration.setOffset(migr_table_name, templateIdOffset, prevTemplateId, @TEMPID);
     END IF ;
 
 		FETCH cur INTO

+ 14 - 8
TRS.WCM.Developer/贵州项目/3_sp_data_migration_wcmtemplateargument.sql

@@ -4,15 +4,15 @@ use trs_data_migration;
 DROP PROCEDURE IF EXISTS sp_data_migration_wcmtemplateargument;
 DELIMITER $$
 CREATE PROCEDURE sp_data_migration_wcmtemplateargument(IN prevTemplateArgId BIGINT(20),
-                                              IN templateArgIdOffset BIGINT(20),
-                                              IN templateIdOffset BIGINT(20),
-                                              IN siteIdOffset BIGINT(20),
-                                              IN channelIdOffset BIGINT(20))
+                                              IN templateArgIdOffset BIGINT(20))
 	BEGIN 
 	
     DECLARE isover INT DEFAULT 0;
 
     DECLARE migr_table_name varchar(255) DEFAULT 'wcmtemplateargument';
+    DECLARE template_migr_table_name varchar(255) DEFAULT 'wcmtemplate';
+    DECLARE site_migr_table_name varchar(255) DEFAULT 'wcmwebsite';
+    DECLARE channel_migr_table_name varchar(255) DEFAULT 'wcmchannel';
 
     DECLARE  f_TEMPLATEARGUMENTID int(11) DEFAULT '0';
     DECLARE  f_EMPLOYERTYPE int(11) DEFAULT '0';
@@ -64,14 +64,19 @@ CREATE PROCEDURE sp_data_migration_wcmtemplateargument(IN prevTemplateArgId BIGI
 
             SET @TEMPLATEARGUMENTID = f_TEMPLATEARGUMENTID;
             SET f_TEMPLATEARGUMENTID = f_TEMPLATEARGUMENTID + templateArgIdOffset;
-            SET f_TEMPLATEID = f_TEMPLATEID + templateIdOffset;
+            SET @template_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = template_migr_table_name AND start_id < f_TEMPLATEID and  end_id >= f_TEMPLATEID), 0);
+            SET f_TEMPLATEID = f_TEMPLATEID + @template_offset_num;
 
             IF (f_EMPLOYERTYPE = 103)
-              THEN SET f_EMPLOYERID = f_EMPLOYERID + siteIdOffset;
+              THEN
+                SET @site_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = site_migr_table_name AND start_id < f_EMPLOYERID and  end_id >= f_EMPLOYERID), 0);
+                SET f_EMPLOYERID = f_EMPLOYERID + @site_offset_num;
             END IF ;
 
             IF (f_EMPLOYERTYPE = 101)
-              THEN SET f_EMPLOYERID = f_EMPLOYERID + channelIdOffset;
+              THEN
+                SET @channel_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = channel_migr_table_name AND start_id < f_EMPLOYERID and  end_id >= f_EMPLOYERID), 0);
+                SET f_EMPLOYERID = f_EMPLOYERID + @channel_offset_num;
             END IF ;
 
 
@@ -97,11 +102,12 @@ CREATE PROCEDURE sp_data_migration_wcmtemplateargument(IN prevTemplateArgId BIGI
                   f_PREFIXOFNAME
                 );
 
-          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @TEMPLATEARGUMENTID);
+          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @TEMPLATEARGUMENTID, now());
 
           prepare stmt from @log_sql;
           EXECUTE stmt;
           deallocate prepare stmt;
+          call trs_data_migration.setOffset(migr_table_name, templateArgIdOffset, prevTemplateArgId, @TEMPLATEARGUMENTID);
     END IF ;
 
 		FETCH cur INTO

+ 14 - 8
TRS.WCM.Developer/贵州项目/3_sp_data_migration_wcmtemplateemploy.sql

@@ -4,15 +4,15 @@ use trs_data_migration;
 DROP PROCEDURE IF EXISTS sp_data_migration_wcmtemplateemploy;
 DELIMITER $$
 CREATE PROCEDURE sp_data_migration_wcmtemplateemploy(IN prevTemplateEmployId BIGINT(20),
-                                              IN templateEmployIdOffset BIGINT(20),
-                                              IN templateIdOffset BIGINT(20),
-                                              IN siteIdOffset BIGINT(20),
-                                              IN channelIdOffset BIGINT(20))
+                                              IN templateEmployIdOffset BIGINT(20))
 	BEGIN 
 	
     DECLARE isover INT DEFAULT 0;
 
     DECLARE migr_table_name varchar(255) DEFAULT 'wcmtemplateemploy';
+    DECLARE template_migr_table_name varchar(255) DEFAULT 'wcmtemplate';
+    DECLARE site_migr_table_name varchar(255) DEFAULT 'wcmwebsite';
+    DECLARE channel_migr_table_name varchar(255) DEFAULT 'wcmchannel';
 
     DECLARE  f_TEMPLATEEMPLOYID int(11) DEFAULT '0';
     DECLARE  f_EMPLOYERTYPE int(11) DEFAULT '0';
@@ -62,14 +62,19 @@ CREATE PROCEDURE sp_data_migration_wcmtemplateemploy(IN prevTemplateEmployId BIG
 
             SET @TEMPLATEEMPLOYID = f_TEMPLATEEMPLOYID;
             SET f_TEMPLATEEMPLOYID = f_TEMPLATEEMPLOYID + templateEmployIdOffset;
-            SET f_TEMPLATEID = f_TEMPLATEID + templateIdOffset;
+            SET @template_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = template_migr_table_name AND start_id < f_TEMPLATEID and  end_id >= f_TEMPLATEID), 0);
+            SET f_TEMPLATEID = f_TEMPLATEID + @template_offset_num;
 
             IF (f_EMPLOYERTYPE = 103)
-              THEN SET f_EMPLOYERID = f_EMPLOYERID + siteIdOffset;
+              THEN
+                SET @site_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = site_migr_table_name AND start_id < f_EMPLOYERID and  end_id >= f_EMPLOYERID), 0);
+                SET f_EMPLOYERID = f_EMPLOYERID + @site_offset_num;
             END IF ;
 
             IF (f_EMPLOYERTYPE = 101)
-              THEN SET f_EMPLOYERID = f_EMPLOYERID + channelIdOffset;
+              THEN
+                SET @channel_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = channel_migr_table_name AND start_id < f_EMPLOYERID and  end_id >= f_EMPLOYERID), 0);
+                SET f_EMPLOYERID = f_EMPLOYERID + @channel_offset_num;
             END IF ;
 
 
@@ -93,11 +98,12 @@ CREATE PROCEDURE sp_data_migration_wcmtemplateemploy(IN prevTemplateEmployId BIG
                   f_ISDEFAULT
                 );
 
-          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @TEMPLATEEMPLOYID);
+          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @TEMPLATEEMPLOYID, now());
 
           prepare stmt from @log_sql;
           EXECUTE stmt;
           deallocate prepare stmt;
+          call trs_data_migration.setOffset(migr_table_name, templateEmployIdOffset, prevTemplateEmployId, @TEMPLATEEMPLOYID);
     END IF ;
 
 		FETCH cur INTO

+ 9 - 3
TRS.WCM.Developer/贵州项目/3_sp_data_migration_wcmtemplatenest.sql

@@ -10,6 +10,7 @@ CREATE PROCEDURE sp_data_migration_wcmtemplatenest(IN prevTemplateNestId BIGINT(
     DECLARE isover INT DEFAULT 0;
 
     DECLARE migr_table_name varchar(255) DEFAULT 'wcmtemplatenest';
+    DECLARE template_migr_table_name varchar(255) DEFAULT 'wcmtemplate';
 
     DECLARE  f_TEMPLATEID int(11) DEFAULT 0;
     DECLARE  f_NESTEDTEMPLATEID int(11) DEFAULT 0;
@@ -51,8 +52,12 @@ CREATE PROCEDURE sp_data_migration_wcmtemplatenest(IN prevTemplateNestId BIGINT(
 
             SET @TEMPLATENESTID = f_TEMPLATENESTID;
             SET f_TEMPLATENESTID = f_TEMPLATENESTID + templateNestIdOffset;
-            SET f_TEMPLATEID = f_TEMPLATEID + templateNestIdOffset;
-            SET f_NESTEDTEMPLATEID = f_NESTEDTEMPLATEID + templateNestIdOffset;
+
+            SET @template_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = template_migr_table_name AND start_id < f_TEMPLATEID and  end_id >= f_TEMPLATEID), 0);
+            SET f_TEMPLATEID = f_TEMPLATEID + @template_offset_num;
+
+            SET @nest_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = migr_table_name AND start_id < f_NESTEDTEMPLATEID and  end_id >= f_NESTEDTEMPLATEID), templateNestIdOffset);
+            SET f_NESTEDTEMPLATEID = f_NESTEDTEMPLATEID + @nest_offset_num;
 
             insert into trs_hycloud_iip.wcmtemplatenest
               (
@@ -67,11 +72,12 @@ CREATE PROCEDURE sp_data_migration_wcmtemplatenest(IN prevTemplateNestId BIGINT(
                   f_TEMPLATENESTID
                 );
 
-          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @TEMPLATENESTID);
+          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @TEMPLATENESTID, now());
 
           prepare stmt from @log_sql;
           EXECUTE stmt;
           deallocate prepare stmt;
+          call trs_data_migration.setOffset(migr_table_name, templateNestIdOffset, prevTemplateNestId, @TEMPLATENESTID);
     END IF ;
 
 		FETCH cur INTO

+ 15 - 8
TRS.WCM.Developer/贵州项目/3_sp_data_migration_wcmtemplatequote.sql

@@ -4,15 +4,15 @@ use trs_data_migration;
 DROP PROCEDURE IF EXISTS sp_data_migration_wcmtemplatequote;
 DELIMITER $$
 CREATE PROCEDURE sp_data_migration_wcmtemplatequote(IN prevTemplateQuoteId BIGINT(20),
-                                              IN templateQuoteIdOffset BIGINT(20),
-                                              IN templateIdOffset BIGINT(20),
-                                              IN siteIdOffset BIGINT(20),
-                                              IN channelIdOffset BIGINT(20))
+                                              IN templateQuoteIdOffset BIGINT(20))
 	BEGIN 
 	
     DECLARE isover INT DEFAULT 0;
 
     DECLARE migr_table_name varchar(255) DEFAULT 'wcmtemplatequote';
+    DECLARE template_migr_table_name varchar(255) DEFAULT 'wcmtemplate';
+    DECLARE site_migr_table_name varchar(255) DEFAULT 'wcmwebsite';
+    DECLARE channel_migr_table_name varchar(255) DEFAULT 'wcmchannel';
 
     DECLARE  f_TEMPLATEQUOTEID int(11) DEFAULT '0';
     DECLARE  f_TEMPLATEID int(11) DEFAULT '0';
@@ -65,14 +65,20 @@ CREATE PROCEDURE sp_data_migration_wcmtemplatequote(IN prevTemplateQuoteId BIGIN
 
             SET @TEMPLATEQUOTEID = f_TEMPLATEQUOTEID;
             SET f_TEMPLATEQUOTEID = f_TEMPLATEQUOTEID + templateQuoteIdOffset;
-            SET f_TEMPLATEID = f_TEMPLATEID + templateIdOffset;
+
+            SET @template_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = template_migr_table_name AND start_id < f_TEMPLATEID and  end_id >= f_TEMPLATEID), 0);
+            SET f_TEMPLATEID = f_TEMPLATEID + @template_offset_num;
 
             IF (f_QUOTEDFOLDERTYPE = 103)
-              THEN SET f_QUOTEDFOLDERID = f_QUOTEDFOLDERID + siteIdOffset;
+              THEN
+                SET @site_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = site_migr_table_name AND start_id < f_QUOTEDFOLDERID and  end_id >= f_QUOTEDFOLDERID), 0);
+                SET f_QUOTEDFOLDERID = f_QUOTEDFOLDERID + @site_offset_num;
             END IF ;
 
             IF (f_QUOTEDFOLDERTYPE = 101)
-              THEN SET f_QUOTEDFOLDERID = f_QUOTEDFOLDERID + channelIdOffset;
+              THEN
+                SET @channel_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = channel_migr_table_name AND start_id < f_QUOTEDFOLDERID and  end_id >= f_QUOTEDFOLDERID), 0);
+                SET f_QUOTEDFOLDERID = f_QUOTEDFOLDERID + @channel_offset_num;
             END IF ;
 
 
@@ -98,11 +104,12 @@ CREATE PROCEDURE sp_data_migration_wcmtemplatequote(IN prevTemplateQuoteId BIGIN
                   f_QUOTETYPE
                 );
 
-          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @TEMPLATEQUOTEID);
+          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @TEMPLATEQUOTEID, now());
 
           prepare stmt from @log_sql;
           EXECUTE stmt;
           deallocate prepare stmt;
+          call trs_data_migration.setOffset(migr_table_name, templateQuoteIdOffset, prevTemplateQuoteId, @TEMPLATEQUOTEID);
     END IF ;
 
 		FETCH cur INTO

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

@@ -278,12 +278,13 @@ CREATE PROCEDURE sp_data_migration_wcmwebsite(IN citySuffix VARCHAR(255), IN pre
                   f_AUTOCHECK
                 );
 
-          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @SITEID);
+          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @SITEID, now());
 
           prepare stmt from @log_sql;
           EXECUTE stmt;
           deallocate prepare stmt;
 
+          call trs_data_migration.setOffset(migr_table_name, siteIdOffset, prevSiteId, @SITEID);
 
           # 插入 站点分类-站点 关系数据
           set @classificationObjId = (SELECT ifnull(max(classificationObjId), 0) from trs_hycloud_iip.wcmclassificationobj);

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

@@ -69,7 +69,8 @@ CREATE PROCEDURE sp_data_migration_xwcmclassinfo(IN prevClassInfoId BIGINT(20),
 
           SET @CLASSINFOID = f_CLASSINFOID;
           SET f_CLASSINFOID = f_CLASSINFOID + classInfoIdOffset;
-          SET f_PARENTID = f_PARENTID + classInfoIdOffset;
+          SET @offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = migr_table_name AND start_id < f_PARENTID and  end_id >= f_PARENTID), 0);
+          SET f_PARENTID = f_PARENTID + @offset_num;
 
           IF (f_ROOTID > 0)
              THEN
@@ -102,11 +103,12 @@ CREATE PROCEDURE sp_data_migration_xwcmclassinfo(IN prevClassInfoId BIGINT(20),
                   f_CCODE
                 );
 
-          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @CLASSINFOID);
+          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @CLASSINFOID, now());
 
           prepare stmt from @log_sql;
           EXECUTE stmt;
           deallocate prepare stmt;
+          call trs_data_migration.setOffset(migr_table_name, classInfoIdOffset, prevClassInfoId, @CLASSINFOID);
     END IF ;
 
 		FETCH cur INTO

+ 12 - 4
TRS.WCM.Developer/贵州项目/3_sp_data_migration_xwcmclassinfoview.sql

@@ -13,6 +13,9 @@ CREATE PROCEDURE sp_data_migration_xwcmclassinfoview(IN prevClassInfoViewId BIGI
 	  DECLARE isover INT DEFAULT 0;
 
     DECLARE migr_table_name varchar(255) DEFAULT 'xwcmclassinfoview';
+    DECLARE view_migr_table_name varchar(255) DEFAULT 'xwcmviewinfo';
+    DECLARE class_migr_table_name varchar(255) DEFAULT 'xwcmclassinfo';
+    DECLARE doc_migr_table_name varchar(255) DEFAULT 'wcmdocument';
 
     DECLARE  f_CLASSINFOVIEWID int(11) DEFAULT NULL;
     DECLARE  f_CLASSINFOID int(11) DEFAULT NULL;
@@ -61,9 +64,13 @@ CREATE PROCEDURE sp_data_migration_xwcmclassinfoview(IN prevClassInfoViewId BIGI
 
           SET @CLASSINFOVIEWID = f_CLASSINFOVIEWID;
           SET f_CLASSINFOVIEWID = f_CLASSINFOVIEWID + classInfoViewIdOffset;
-          SET f_CLASSINFOID = f_CLASSINFOID + classInfoIdOffset;
-          SET f_METADATAID = f_METADATAID + docIdOffset;
-          SET f_VIEWID = f_VIEWID + viewIdOffset;
+
+          SET @class_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = class_migr_table_name AND start_id < f_CLASSINFOID and  end_id >= f_CLASSINFOID), 0);
+          SET f_CLASSINFOID = f_CLASSINFOID + @class_offset_num;
+          SET @doc_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = doc_migr_table_name AND start_id < f_METADATAID and  end_id >= f_METADATAID), 0);
+          SET f_METADATAID = f_METADATAID + @doc_offset_num;
+          SET @view_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = view_migr_table_name AND start_id < f_VIEWID and  end_id >= f_VIEWID), 0);
+          SET f_VIEWID = f_VIEWID + @view_offset_num;
 
 
             insert into trs_hycloud_iip.xwcmclassinfoview
@@ -85,11 +92,12 @@ CREATE PROCEDURE sp_data_migration_xwcmclassinfoview(IN prevClassInfoViewId BIGI
                   f_CRTIME
                 );
 
-          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @CLASSINFOVIEWID);
+          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @CLASSINFOVIEWID, now());
 
           prepare stmt from @log_sql;
           EXECUTE stmt;
           deallocate prepare stmt;
+          call trs_data_migration.setOffset(migr_table_name, classInfoViewIdOffset, prevClassInfoViewId, @CLASSINFOVIEWID);
     END IF ;
 
 		FETCH cur INTO

+ 10 - 6
TRS.WCM.Developer/贵州项目/3_sp_data_migration_xwcmdbfieldinfo.sql

@@ -5,14 +5,14 @@ DROP PROCEDURE IF EXISTS sp_data_migration_xwcmdbfieldinfo;
 DELIMITER $$
 CREATE PROCEDURE sp_data_migration_xwcmdbfieldinfo(IN citySuffix VARCHAR(20),
                                               IN prevFieldId BIGINT(20),
-                                              IN fieldIdOffset BIGINT(20),
-                                              IN classInfoIdOffset BIGINT(20),
-                                              IN tableIdOffset BIGINT(20))
+                                              IN fieldIdOffset BIGINT(20))
 	BEGIN
 	
 	  DECLARE isover INT DEFAULT 0;
 
     DECLARE migr_table_name varchar(255) DEFAULT 'xwcmdbfieldinfo';
+    DECLARE tabel_migr_table_name varchar(255) DEFAULT 'xwcmtableinfo';
+    DECLARE class_igr_table_name varchar(255) DEFAULT 'xwcmclassinfo';
 
     DECLARE  f_DBFIELDINFOID int(11) DEFAULT NULL;
     DECLARE  f_TABLENAME varchar(50) DEFAULT '0';
@@ -101,8 +101,11 @@ CREATE PROCEDURE sp_data_migration_xwcmdbfieldinfo(IN citySuffix VARCHAR(20),
 
             SET @DBFIELDINFOID = f_DBFIELDINFOID;
             SET f_DBFIELDINFOID = f_DBFIELDINFOID + fieldIdOffset;
-            SET f_TABLEID = f_TABLEID + tableIdOffset;
-            SET f_CLASSID = f_CLASSID + classInfoIdOffset;
+            SET @table_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = tabel_migr_table_name AND start_id < f_TABLEID and  end_id >= f_TABLEID), 0);
+            SET f_TABLEID = f_TABLEID + @table_offset_num;
+
+            SET @class_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = class_igr_table_name AND start_id < f_CLASSID and  end_id >= f_CLASSID), 0);
+            SET f_CLASSID = f_CLASSID + @class_offset_num;
 
             insert into trs_hycloud_iip.xwcmdbfieldinfo
               (
@@ -149,11 +152,12 @@ CREATE PROCEDURE sp_data_migration_xwcmdbfieldinfo(IN citySuffix VARCHAR(20),
                   f_HIDDENFIELD
                 );
 
-          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @DBFIELDINFOID);
+          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @DBFIELDINFOID, now());
 
           prepare stmt from @log_sql;
           EXECUTE stmt;
           deallocate prepare stmt;
+          call trs_data_migration.setOffset(migr_table_name, fieldIdOffset, prevFieldId, @DBFIELDINFOID);
     END IF ;
 
 		FETCH cur INTO

+ 15 - 5
TRS.WCM.Developer/贵州项目/3_sp_data_migration_xwcmmetaviewemployer.sql

@@ -13,6 +13,9 @@ CREATE PROCEDURE sp_data_migration_xwcmmetaviewemployer(IN prevMetaViewEmployerI
     DECLARE isover INT DEFAULT 0;
 
     DECLARE migr_table_name varchar(255) DEFAULT 'xwcmmetaviewemployer';
+    DECLARE view_migr_table_name varchar(255) DEFAULT 'xwcmviewinfo';
+    DECLARE site_migr_table_name varchar(255) DEFAULT 'wcmwebsite';
+    DECLARE channel_migr_table_name varchar(255) DEFAULT 'wcmchannel';
 
     DECLARE  f_VIEWID int(11) DEFAULT '0';
     DECLARE  f_CHANNELID int(11) DEFAULT '0';
@@ -61,15 +64,21 @@ CREATE PROCEDURE sp_data_migration_xwcmmetaviewemployer(IN prevMetaViewEmployerI
 
             SET @METAVIEWEMPLOYERID = f_METAVIEWEMPLOYERID;
             SET f_METAVIEWEMPLOYERID = f_METAVIEWEMPLOYERID + metaViewEmployerIdOffset;
-            SET f_CHANNELID = f_CHANNELID + channelIdOffset;
-            SET f_VIEWID = f_VIEWID + viewIdOffset;
+            SET @channel_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = channel_migr_table_name AND start_id < f_CHANNELID and  end_id >= f_CHANNELID), 0);
+            SET f_CHANNELID = f_CHANNELID + @channel_offset_num;
+            SET @view_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = view_migr_table_name AND start_id < f_VIEWID and  end_id >= f_VIEWID), 0);
+            SET f_VIEWID = f_VIEWID + @view_offset_num;
 
             IF (f_EmployerType = 103)
-              THEN SET f_EmployerId = f_EmployerId + siteIdOffset;
+              THEN
+                SET @site_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = site_migr_table_name AND start_id < f_EmployerId and  end_id >= f_EmployerId), 0);
+                SET f_EmployerId = f_EmployerId + @site_offset_num;
             END IF ;
 
             IF (f_EmployerType = 101)
-              THEN SET f_EmployerId = f_EmployerId + channelIdOffset;
+              THEN
+                SET @channel_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = channel_migr_table_name AND start_id < f_EmployerId and  end_id >= f_EmployerId), 0);
+                SET f_EmployerId = f_EmployerId + @channel_offset_num;
             END IF ;
 
 
@@ -90,11 +99,12 @@ CREATE PROCEDURE sp_data_migration_xwcmmetaviewemployer(IN prevMetaViewEmployerI
                   f_EmployerId
                 );
 
-          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @METAVIEWEMPLOYERID);
+          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @METAVIEWEMPLOYERID, now());
 
           prepare stmt from @log_sql;
           EXECUTE stmt;
           deallocate prepare stmt;
+          call trs_data_migration.setOffset(migr_table_name, metaViewEmployerIdOffset, prevMetaViewEmployerId, @METAVIEWEMPLOYERID);
     END IF ;
 
 		FETCH cur INTO

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

@@ -86,7 +86,7 @@ CREATE PROCEDURE sp_data_migration_xwcmmetaviewfieldgroup(IN prevMetaViewFieldGr
                   f_GROUPORDER
                 );
 
-          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @METAVIEWFIELDGROUPID);
+          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @METAVIEWFIELDGROUPID, now());
 
           prepare stmt from @log_sql;
           EXECUTE stmt;

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

@@ -90,11 +90,12 @@ CREATE PROCEDURE sp_data_migration_xwcmtableinfo(IN citySuffix VARCHAR(20),
                   f_OWNERID
                 );
 
-          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @TABLEINFOID);
+          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @TABLEINFOID, now());
 
           prepare stmt from @log_sql;
           EXECUTE stmt;
           deallocate prepare stmt;
+          call trs_data_migration.setOffset(migr_table_name, tableInfoIdOffset, prevTableInfoId, @TABLEINFOID);
     END IF ;
 
 		FETCH cur INTO

+ 23 - 7
TRS.WCM.Developer/贵州项目/3_sp_data_migration_xwcmviewfieldinfo.sql

@@ -18,6 +18,11 @@ CREATE PROCEDURE sp_data_migration_xwcmviewfieldinfo(IN citySuffix VARCHAR(20),
 
 
     DECLARE migr_table_name varchar(255) DEFAULT 'xwcmviewfieldinfo';
+    DECLARE table_migr_table_name varchar(255) DEFAULT 'xwcmtableinfo';
+    DECLARE class_migr_table_name varchar(255) DEFAULT 'xwcmclassinfo';
+    DECLARE view_migr_table_name varchar(255) DEFAULT 'xwcmviewinfo';
+    DECLARE db_migr_table_name varchar(255) DEFAULT 'xwcmdbfieldinfo';
+
 
     DECLARE  f_VIEWFIELDINFOID int(11) DEFAULT NULL;
     DECLARE  f_TABLENAME varchar(50) DEFAULT NULL;
@@ -173,13 +178,24 @@ CREATE PROCEDURE sp_data_migration_xwcmviewfieldinfo(IN citySuffix VARCHAR(20),
 
             SET @VIEWFIELDINFOID = f_VIEWFIELDINFOID;
             SET f_VIEWFIELDINFOID = f_VIEWFIELDINFOID + viewFieldInfoIdOffset;
-            SET f_TABLEID = f_TABLEID + tableInfoIdOffset;
-            SET f_CLASSID = f_CLASSID + classIdOffset;
-            SET f_VIEWID = f_VIEWID + viewIdOffset;
-            SET f_DBFIELD = f_DBFIELD + dbFieldIdOffset;
+
+            SET @table_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = table_migr_table_name AND start_id < f_TABLEID and  end_id >= f_TABLEID), 0);
+            SET f_TABLEID = f_TABLEID + @table_offset_num;
+
+            SET @class_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = class_migr_table_name AND start_id < f_CLASSID and  end_id >= f_CLASSID), 0);
+            SET f_CLASSID = f_CLASSID + @class_offset_num;
+
+            SET @view_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = view_migr_table_name AND start_id < f_VIEWID and  end_id >= f_VIEWID), 0);
+            SET f_VIEWID = f_VIEWID + @view_offset_num;
+
+            SET @db_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = db_migr_table_name AND start_id < f_DBFIELD and  end_id >= f_DBFIELD), 0);
+            SET f_DBFIELD = f_DBFIELD + @db_offset_num;
+
             -- SET f_LIBFILEDID = f_LIBFILEDID + ;
-            SET f_FIELDGROUPID = f_FIELDGROUPID + fieldGroupIdOffset;
-            SET f_RELATIONVIEWID = f_RELATIONVIEWID + relationViewIdOffset;
+            SET f_FIELDGROUPID = null;
+
+            SET @ralation_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = view_migr_table_name AND start_id < f_RELATIONVIEWID and  end_id >= f_RELATIONVIEWID), 0);
+            SET f_RELATIONVIEWID = f_RELATIONVIEWID + @ralation_offset_num;
 
             insert into trs_hycloud_iip.xwcmviewfieldinfo
               (
@@ -272,7 +288,7 @@ CREATE PROCEDURE sp_data_migration_xwcmviewfieldinfo(IN citySuffix VARCHAR(20),
                   f_ISONLYSITE
                 );
 
-          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @VIEWFIELDINFOID);
+          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @VIEWFIELDINFOID, now());
 
           prepare stmt from @log_sql;
           EXECUTE stmt;

+ 8 - 5
TRS.WCM.Developer/贵州项目/3_sp_data_migration_xwcmviewinfo.sql

@@ -5,13 +5,13 @@ DROP PROCEDURE IF EXISTS sp_data_migration_xwcmviewinfo;
 DELIMITER $$
 CREATE PROCEDURE sp_data_migration_xwcmviewinfo(IN citySuffix VARCHAR(20),
                                               IN prevViewId BIGINT(20),
-                                              IN viewIdOffset BIGINT(20),
-                                              IN mainTableIdOffset BIGINT(20))
+                                              IN viewIdOffset BIGINT(20))
 	BEGIN 
 	
 	DECLARE isover INT DEFAULT 0;
 
     DECLARE migr_table_name varchar(255) DEFAULT 'xwcmviewinfo';
+    DECLARE tabel_migr_table_name varchar(255) DEFAULT 'xwcmtableinfo';
 
     DECLARE  f_VIEWINFOID int(11) DEFAULT NULL;
     DECLARE  f_VIEWNAME varchar(100) DEFAULT NULL;
@@ -56,7 +56,7 @@ CREATE PROCEDURE sp_data_migration_xwcmviewinfo(IN citySuffix VARCHAR(20),
       HIDDENFILEAPPENDIX,
       HIDDENIMGAPPENDIX,
       HIDDENLINKAPPENDIX,
-      Attribute
+      null
     FROM trs_data_migration.xwcmviewinfo
 		ORDER BY VIEWINFOID asc;
 
@@ -100,7 +100,9 @@ CREATE PROCEDURE sp_data_migration_xwcmviewinfo(IN citySuffix VARCHAR(20),
 
             SET @VIEWINFOID = f_VIEWINFOID;
             SET f_VIEWINFOID = f_VIEWINFOID + viewIdOffset;
-            SET f_MAINTABLEID = f_MAINTABLEID + mainTableIdOffset;
+
+            SET @table_offset_num = ifnull((SELECT offset_num FROM data_migration_offset WHERE table_name = tabel_migr_table_name AND start_id < f_MAINTABLEID and  end_id >= f_MAINTABLEID), 0);
+            SET f_MAINTABLEID = f_MAINTABLEID + @table_offset_num;
 
             insert into trs_hycloud_iip.xwcmviewinfo
               (
@@ -147,11 +149,12 @@ CREATE PROCEDURE sp_data_migration_xwcmviewinfo(IN citySuffix VARCHAR(20),
                   f_Attribute
                 );
 
-          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @VIEWINFOID);
+          SET @log_sql = trs_data_migration.build_migration_log_sql(migr_table_name, @VIEWINFOID, now());
 
           prepare stmt from @log_sql;
           EXECUTE stmt;
           deallocate prepare stmt;
+          call trs_data_migration.setOffset(migr_table_name, viewIdOffset, prevViewId, @VIEWINFOID);
     END IF ;
 
 		FETCH cur INTO

+ 64 - 60
TRS.WCM.Developer/贵州项目/4_sp_city_n.sql

@@ -35,74 +35,76 @@ CREATE PROCEDURE sp_city_n(IN n INT)
     SET @prevAppendixId = ifnull((SELECT prev_id from trs_data_migration.data_migration_log where table_name = 'wcmappendix'), 0);
 
 
-
+    # 支持数据增量 偏移量  修改
 
     # xx ID 偏移量,获取海云系统中的对应 xx maxID 错开一段距离,改为存入最大id
-	SET @siteIdOffset= IFNULL((SELECT MAX(siteId) from trs_hycloud_iip.wcmwebsite),0);
-	CALL setOffset('wcmwebsite',@siteIdOffset);
-	SET @chnlIdOffset= IFNULL((SELECT MAX(channelId) from trs_hycloud_iip.wcmchannel),0);
-	CALL setOffset('wcmchannel',@chnlIdOffset);
-	SET @appendixIdOffset= IFNULL((SELECT MAX(appendixId) from trs_hycloud_iip.wcmappendix),0);
-	CALL setOffset('wcmappendix',@appendixIdOffset);
-	SET @recIdOffset= IFNULL((SELECT MAX(recId) from trs_hycloud_iip.wcmchnldoc),0);
-	CALL setOffset('wcmchnldoc',@recIdOffset);
-	SET @docIdOffset= IFNULL((SELECT MAX(documentId) from trs_hycloud_iip.wcmdocument),0);
-	CALL setOffset('wcmdocument',@docIdOffset);
-	SET @viewIdOffset= IFNULL((SELECT MAX(viewInfoId) from trs_hycloud_iip.xwcmviewinfo),0);
-	CALL setOffset('xwcmviewinfo',@viewIdOffset);
-	SET @tableInfoIdOffset= IFNULL((SELECT MAX(TABLEINFOID) from trs_hycloud_iip.xwcmtableinfo),0);
-	CALL setOffset('xwcmtableinfo',@tableInfoIdOffset);
-	SET @fieldIdOffset= IFNULL((SELECT MAX(dbFieldId) from trs_hycloud_iip.xwcmdbfieldinfo),0);
-	CALL setOffset('xwcmdbfieldinfo',@fieldIdOffset);
-	SET @channelSynIdOffset= IFNULL((SELECT MAX(channelSynId) from trs_hycloud_iip.wcmchannelsyn),0);
-	CALL setOffset('wcmchannelsyn',@channelSynIdOffset);
-	SET @templateIdOffset= IFNULL((SELECT MAX(templateId) from trs_hycloud_iip.wcmtemplate),0);
-	CALL setOffset('wcmtemplate',@templateIdOffset);
-	SET @folderPublishConfigIdOffset= IFNULL((SELECT MAX(folderPublishConfigId) from trs_hycloud_iip.wcmfolderpublishconfig),0);
-	CALL setOffset('wcmfolderpublishconfig',@folderPublishConfigIdOffset);
-	SET @templateEmployIdOffset= IFNULL((SELECT MAX(templateEmployId) from trs_hycloud_iip.wcmtemplateemploy),0);
-	CALL setOffset('wcmtemplateemploy',@templateEmployIdOffset);
-	SET @templateNestIdOffset= IFNULL((SELECT MAX(templateNestId) from trs_hycloud_iip.wcmtemplatenest),0);
-	CALL setOffset('wcmtemplatenest',@templateNestIdOffset);
-	SET @templateQuoteIdOffset= IFNULL((SELECT MAX(templateQuoteId) from trs_hycloud_iip.wcmtemplatequote),0);
-	CALL setOffset('wcmtemplatequote',@templateQuoteIdOffset);
-
-	SET @metaViewEmployerIdOffset= IFNULL((SELECT MAX(metaViewEmployerId) from trs_hycloud_iip.xwcmmetaviewemployer),0);
-	CALL setOffset('xwcmmetaviewemployer',@metaViewEmployerIdOffset);
-	SET @viewFieldInfoIdOffset= IFNULL((SELECT MAX(viewfieldinfoId) from trs_hycloud_iip.xwcmviewfieldinfo),0);
-	CALL setOffset('xwcmviewfieldinfo',@viewFieldInfoIdOffset);
-	SET @templateArgIdOffset= IFNULL((SELECT MAX(TEMPLATEARGUMENTID) from trs_hycloud_iip.wcmtemplateargument),0);
-	CALL setOffset('wcmtemplateargument',@templateArgIdOffset);
-	SET @classInfoIdOffset= IFNULL((SELECT MAX(classInfoId) from trs_hycloud_iip.xwcmclassinfo),0);
-	CALL setOffset('xwcmclassinfo',@classInfoIdOffset);
-	SET @classInfoViewIdOffset= IFNULL((SELECT MAX(classInfoViewId) from trs_hycloud_iip.xwcmclassinfoview),0);
-	CALL setOffset('xwcmclassinfoview',@classInfoViewIdOffset);
-    # xx ID 偏移量,为了和海云系统中的 xx ID 错开一段距离(原)
+	  SET @maxSiteId = IFNULL((SELECT MAX(siteId) from trs_hycloud_iip.wcmwebsite),0);
+		SET @siteIdOffset = @maxSiteId - @prevSiteId;
+	  SET @maxChannelId= IFNULL((SELECT MAX(channelId) from trs_hycloud_iip.wcmchannel),0);
+	  SET @channelIdOffset = @maxChannelId - @prevChannelId;
+	  SET @maxAppendixId= IFNULL((SELECT MAX(appendixId) from trs_hycloud_iip.wcmappendix),0);
+	  SET @appendixIdOffset = @maxAppendixId - @prevAppendixId;
+    SET @maxRecId= IFNULL((SELECT MAX(recId) from trs_hycloud_iip.wcmchnldoc),0);
+	  SET @recIdOffset = @maxRecId - @prevRecId;
+	  SET @maxDocId= IFNULL((SELECT MAX(DOCID) from trs_hycloud_iip.wcmdocument),0);
+	  SET @docIdOffset = @maxDocId - @prevDocId;
+	  SET @maxViewId= IFNULL((SELECT MAX(viewInfoId) from trs_hycloud_iip.xwcmviewinfo),0);
+	  SET @viewIdOffset = @maxViewId - @prevViewId;
+	  SET @maxTableInfoId= IFNULL((SELECT MAX(TABLEINFOID) from trs_hycloud_iip.xwcmtableinfo),0);
+	  SET @tableInfoIdOffset = @maxTableInfoId - @prevTableInfoId;
+	  SET @maxFieldId = IFNULL((SELECT MAX(DBFIELDINFOID) from trs_hycloud_iip.xwcmdbfieldinfo),0);
+	  SET @fieldIdOffset = @maxFieldId - @prevFieldId;
+	  SET @maxChannelSynId= IFNULL((SELECT MAX(channelSynId) from trs_hycloud_iip.wcmchannelsyn),0);
+	  SET @channelSynIdOffset = @maxChannelSynId - @prevChannelSynId;
+	  SET @maxTemplateId = IFNULL((SELECT MAX(TEMPID) from trs_hycloud_iip.wcmtemplate),0);
+	  SET @templateIdOffset = @maxTemplateId - @prevTemplateId;
+	  SET @maxFolderPublishConfigId = IFNULL((SELECT MAX(FOLDERPUBLISHCONFIGID) from trs_hycloud_iip.wcmfolderpublishconfig),0);
+	  SET @folderPublishConfigIdOffset = @maxFolderPublishConfigId - @prevFolderPublishConfigId;
+	  SET @maxTemplateEmployId = IFNULL((SELECT MAX(TEMPLATEEMPLOYID) from trs_hycloud_iip.wcmtemplateemploy),0);
+	  SET @templateEmployIdOffset = @maxTemplateEmployId - @prevTemplateEmployId;
+	  SET @maxTemplateNestId= IFNULL((SELECT MAX(TEMPLATENESTID) from trs_hycloud_iip.wcmtemplatenest),0);
+	  SET @templateNestIdOffset = @maxTemplateNestId - @prevTemplateNestId;
+	  SET @maxTemplateQuoteId = IFNULL((SELECT MAX(TEMPLATEQUOTEID) from trs_hycloud_iip.wcmtemplatequote),0);
+	  SET @templateQuoteIdOffset = @maxTemplateQuoteId - @prevTemplateQuoteId;
+	  SET @maxMetaViewEmployerId = IFNULL((SELECT MAX(METAVIEWEMPLOYERID) from trs_hycloud_iip.xwcmmetaviewemployer),0);
+	  SET @metaViewEmployerIdOffset = @maxMetaViewEmployerId - @prevMetaViewEmployerId;
+	  SET @maxViewFieldInfoId = IFNULL((SELECT MAX(VIEWFIELDINFOID) from trs_hycloud_iip.xwcmviewfieldinfo),0);
+	  SET @viewFieldInfoIdOffset = @maxViewFieldInfoId - @prevViewFieldInfoId;
+	  SET @maxTemplateArgId= IFNULL((SELECT MAX(TEMPLATEARGUMENTID) from trs_hycloud_iip.wcmtemplateargument),0);
+	  SET @templateArgIdOffset = @maxTemplateArgId - @prevTemplateArgId;
+	  SET @maxClassInfoId = IFNULL((SELECT MAX(classInfoId) from trs_hycloud_iip.xwcmclassinfoxwcmclassinfo),0);
+	  SET @classInfoIdOffset = @maxClassInfoId - @prevClassInfoId;
+	  SET @maxClassInfoViewId = IFNULL((SELECT MAX(CLASSINFOVIEWID) from trs_hycloud_iip.xwcmclassinfoview),0);
+	  SET @classInfoViewIdOffset = @maxClassInfoViewId - @prevClassInfoViewId;
     #字段分组不用迁移,旧环境分组无法复用
-    SET @metaViewFieldGroupIdOffset = 100000 * @n;
+--     SET @maxMetaViewFieldGroupId = IFNULL((SELECT MAX(METAVIEWFIELDGROUPID) from trs_hycloud_iip.xwcmmetaviewfieldgroup),0);
+--     SET @metaViewFieldGroupIdOffset = @maxMetaViewFieldGroupId - @prevMetaViewFieldGroupId;
+
 
-    call sp_data_migration_wcmappendix(@prevAppendixId, @appendixIdOffset, @docIdOffset);
-    call sp_data_migration_wcmchannel(@prevChannelId, @siteIdOffset, @channelIdOffset);
-    call sp_data_migration_wcmchannelchildindexquote(@templateIdOffset, @siteIdOffset, @channelIdOffset);
-    call sp_data_migration_wcmchannelsyn(@prevChannelSynId, @channelSynIdOffset, @channelIdOffset);
-    call sp_data_migration_wcmchnldoc(@prevRecId, @recIdOffset, @docIdOffset, @siteIdOffset, @channelIdOffset, @viewIdOffset);
-    call sp_data_migration_wcmdocument(@prevDocId, @docIdOffset, @viewIdOffset, @siteIdOffset, @channelIdOffset);
-    call sp_data_migration_wcmfolderpublishconfig(@prevFolderPublishConfigId, @folderPublishConfigIdOffset, @siteIdOffset, @channelIdOffset);
-    call sp_data_migration_wcmtemplate(@prevTemplateId, @templateIdOffset, @siteIdOffset, @channelIdOffset);
-    call sp_data_migration_wcmtemplateargument(@prevTemplateArgId, @templateArgIdOffset, @templateIdOffset, @siteIdOffset, @channelIdOffset);
-    call sp_data_migration_wcmtemplateemploy(@prevTemplateEmployId, @templateEmployIdOffset, @templateIdOffset, @siteIdOffset, @channelIdOffset);
-    call sp_data_migration_wcmtemplatenest(@prevTemplateNestId, @templateNestIdOffset);
-    call sp_data_migration_wcmtemplatequote(@prevTemplateQuoteId, @templateQuoteIdOffset, @templateIdOffset, @siteIdOffset, @channelIdOffset);
     call sp_data_migration_wcmwebsite(@citySuffix, @prevSiteId, @siteIdOffset);
+    call sp_data_migration_wcmchannel(@prevChannelId, @channelIdOffset);
+    call sp_data_migration_wcmchannelsyn(@prevChannelSynId, @channelSynIdOffset);
+    call sp_data_migration_xwcmtableinfo(@citySuffix, @prevTableInfoId, @tableInfoIdOffset);
     call sp_data_migration_xwcmclassinfo(@prevClassInfoId, @classInfoIdOffset);
+    call sp_data_migration_wcmtemplate(@prevTemplateId, @templateIdOffset);
+    call sp_data_migration_wcmtemplatenest(@prevTemplateNestId, @templateNestIdOffset);
+    call sp_data_migration_wcmfolderpublishconfig(@prevFolderPublishConfigId, @folderPublishConfigIdOffset);
+    call sp_data_migration_wcmtemplateargument(@prevTemplateArgId, @templateArgIdOffset);
+    call sp_data_migration_wcmtemplateemploy(@prevTemplateEmployId, @templateEmployIdOffset);
+    call sp_data_migration_wcmtemplatequote(@prevTemplateQuoteId, @templateQuoteIdOffset);
+    call sp_data_migration_wcmchannelchildindexquote();
+    call sp_data_migration_xwcmviewinfo(@citySuffix, @prevViewId, @viewIdOffset);
+    call sp_data_migration_xwcmdbfieldinfo(@citySuffix, @prevFieldId, @fieldIdOffset);
+    call sp_data_migration_wcmdocument(@prevDocId, @docIdOffset);
+    call sp_data_migration_wcmappendix(@prevAppendixId, @appendixIdOffset, @docIdOffset);
+    call sp_data_migration_wcmchnldoc(@prevRecId, @recIdOffset, @docIdOffset, @siteIdOffset, @channelIdOffset, @viewIdOffset);
     call sp_data_migration_xwcmclassinfoview(@prevClassInfoViewId, @classInfoViewIdOffset, @classInfoIdOffset, @docIdOffset, @viewIdOffset);
-    call sp_data_migration_xwcmdbfieldinfo(@citySuffix, @prevFieldId, @fieldIdOffset, @prevClassInfoId, @tableInfoIdOffset);
     call sp_data_migration_xwcmmetaviewemployer(@prevMetaViewEmployerId, @metaViewEmployerIdOffset, @viewIdOffset, @siteIdOffset, @channelIdOffset);
-    call sp_data_migration_xwcmmetaviewfieldgroup(@prevMetaViewFieldGroupId, @metaViewFieldGroupIdOffset, @viewIdOffset);
-    call sp_data_migration_xwcmtableinfo(@citySuffix, @prevTableInfoId, @tableInfoIdOffset);
     call sp_data_migration_xwcmviewfieldinfo(@citySuffix, @prevViewFieldInfoId, @viewFieldInfoIdOffset, @tableInfoIdOffset, @prevClassInfoId, @dbFieldIdOffset, @metaViewFieldGroupIdOffset, @viewIdOffset, @viewIdOffset);
-    call sp_data_migration_xwcmviewinfo(@citySuffix, @prevViewId, @viewIdOffset, @tableInfoIdOffset);
+
     call sp_data_migration_wcmmetatable(@citySuffix, @prevTableInfoId, @prevDocId, @docIdOffset, @channelIdOffset);
+--     call sp_data_migration_xwcmmetaviewfieldgroup(@prevMetaViewFieldGroupId, @metaViewFieldGroupIdOffset, @viewIdOffset);
+
 
 
     # 待优化
@@ -112,8 +114,10 @@ CREATE PROCEDURE sp_city_n(IN n INT)
     SET @prevMasId = ifnull((SELECT prev_id from trs_data_migration.data_migration_log where table_name = 'mas_masid'), 0);
     SET @prevMasVideoId = ifnull((SELECT prev_id from trs_data_migration.data_migration_log where table_name = 'mas_masvideo'), 0);
 
-    SET @masIdOffset = 1000000;
-    SET @masVideoIdOffset = 1000000;
+    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 trs_data_migration.sp_data_migration_masid(@prevMasId, @masIdOffset);
     call trs_data_migration.sp_data_migration_masvideo(@prevMasVideoId, @masVideoIdOffset);