Browse Source

脚本调整05.25.00

lijihong 6 years ago
parent
commit
8b74f72a89

+ 25 - 0
TRS.WCM.Developer/贵州项目/0_update_data_relation_appendix.sql

@@ -0,0 +1,25 @@
+DROP PROCEDURE IF EXISTS update_data_relation_appendix;
+DELIMITER $$
+CREATE PROCEDURE update_data_relation_appendix(IN n INT,
+                                               IN mas_url VARCHAR(200))
+	BEGIN
+
+    SET @citySuffix = concat('_city', n);
+
+    SET @prevDocId = ifnull((SELECT prev_id from data_migration_log where table_name = 'wcmdocument'), 0);
+    SET @prevTableInfoId = ifnull((SELECT prev_id from data_migration_log where table_name = 'xwcmtableinfo'), 0);
+
+    SET @wcmdocument_offset_num = ifnull((SELECT max(offset_num) FROM data_migration_offset WHERE table_name = 'wcmdocument'), 0);
+    SET @docIdOffset = @wcmdocument_offset_num;
+
+    SET @appendix_offset_num = ifnull((SELECT max(offset_num) FROM data_migration_offset WHERE table_name = 'xwcmmaterial'), 0);
+    SET @appendixIdOffset = @appendix_offset_num;
+
+    call update_data_relation_appendix_1(@prevDocId, @appendixIdOffset, @docIdOffset);
+
+    call update_data_relation_appendix_2(@citySuffix, @prevTableInfoId, @prevDocId);
+
+    UPDATE trs_hycloud_iip.wcmappendix SET APPFILE = CONCAT(mas_url, AppFromId) WHERE APPFLAG = 90 AND APPENDIXID > @appendixIdOffset;
+
+  END $$
+DELIMITER ;

+ 37 - 0
TRS.WCM.Developer/贵州项目/0_update_data_relation_appendix_1.sql

@@ -0,0 +1,37 @@
+DROP PROCEDURE IF EXISTS update_data_relation_appendix_1;
+DELIMITER $$
+CREATE PROCEDURE update_data_relation_appendix_1(
+                                  IN preDocId BIGINT(20),
+                                  IN appendixIdOffset BIGINT(20),
+                                  IN docIdOffset BIGINT(20))
+	BEGIN
+    # 相关图片
+    delete from relphoto_doc;
+    set @p_sql = concat('insert into relphoto_doc(docid, appendixids) SELECT
+        a.DOCID + ',docIdOffset,',
+        GROUP_CONCAT(a.MATERIALQUOTEID + ',appendixIdOffset,')
+        FROM
+        xwcmmaterialquote a
+        LEFT JOIN xwcmmaterial b ON a.MATERIALID = b.MATERIALID
+        WHERE
+        b.MATERIALTYPE = 1 and a.DOCID >',preDocId,'
+        GROUP BY a.DOCID;');
+    prepare stmt from @p_sql;
+    EXECUTE stmt;
+    deallocate prepare stmt;
+    #相关视频
+    delete from relvideo_doc;
+    set @v_sql = concat('insert into relvideo_doc(docid, appendixids) SELECT
+        a.DOCID + ',docIdOffset,' AS docid,
+        GROUP_CONCAT(a.MATERIALQUOTEID + ',appendixIdOffset,') AS appendixids
+        FROM
+        xwcmmaterialquote a
+        LEFT JOIN xwcmmaterial b ON a.MATERIALID = b.MATERIALID
+        WHERE
+        b.MATERIALTYPE = 2 and a.DOCID >',preDocId,'
+        GROUP BY a.DOCID;');
+    prepare stmt from @v_sql;
+    EXECUTE stmt;
+    deallocate prepare stmt;
+  END $$
+DELIMITER ;

+ 147 - 0
TRS.WCM.Developer/贵州项目/0_update_data_relation_appendix_2.sql

@@ -0,0 +1,147 @@
+DROP PROCEDURE IF EXISTS update_data_relation_appendix_2;
+DELIMITER $$
+CREATE PROCEDURE update_data_relation_appendix_2(
+                                  IN citySuffix VARCHAR(20),
+                                  IN preTableId BIGINT(20),
+                                  IN preDocId BIGINT(20))
+	BEGIN 
+	
+	  DECLARE isover INT DEFAULT 0;
+
+    DECLARE  f_DBFIELDINFOID int(11) DEFAULT NULL;
+    DECLARE  f_TABLENAME varchar(50) DEFAULT '0';
+    DECLARE  f_TABLEID int(11) DEFAULT '0';
+    DECLARE  f_FIELDNAME varchar(50) DEFAULT '0';
+    DECLARE  f_ANOTHERNAME varchar(200) DEFAULT '0';
+    DECLARE  f_FIELDTYPE int(11) DEFAULT '0';
+    DECLARE  f_DBTYPE int(11) DEFAULT '0';
+    DECLARE  f_DBLENGTH int(11) DEFAULT '0';
+    DECLARE  f_DEFAULTVALUE varchar(200) DEFAULT NULL;
+    DECLARE  f_ENMVALUE varchar(1000) DEFAULT NULL;
+    DECLARE  f_NOTNULL smallint(6) DEFAULT NULL;
+    DECLARE  f_CLASSID int(11) DEFAULT '0';
+    DECLARE  f_DBSCALE int(11) DEFAULT '0';
+    DECLARE  f_CRUSER varchar(30) DEFAULT NULL;
+    DECLARE  f_CRTIME datetime DEFAULT NULL;
+    DECLARE  f_VALIDATOR varchar(200) DEFAULT NULL;
+    DECLARE  f_RADORCHK smallint(6) DEFAULT NULL;
+    DECLARE  f_NOTEDIT smallint(6) DEFAULT '0';
+    DECLARE  f_HIDDENFIELD smallint(6) DEFAULT '0';
+
+
+
+  DECLARE cur CURSOR FOR
+		SELECT
+      DBFIELDINFOID,
+      TABLENAME,
+      TABLEID,
+      FIELDNAME,
+      ANOTHERNAME,
+      FIELDTYPE,
+      DBTYPE,
+      DBLENGTH,
+      DEFAULTVALUE,
+      ENMVALUE,
+      NOTNULL,
+      CLASSID,
+      DBSCALE,
+      CRUSER,
+      CRTIME,
+      VALIDATOR,
+      RADORCHK,
+      NOTEDIT,
+      HIDDENFIELD
+    FROM xwcmdbfieldinfo
+    where FIELDTYPE in (32, 20)
+		ORDER BY TABLEID asc;
+
+	DECLARE CONTINUE HANDLER FOR NOT FOUND SET isover = 1;
+
+	OPEN cur;
+
+	FETCH cur INTO
+    f_DBFIELDINFOID,
+    f_TABLENAME,
+    f_TABLEID,
+    f_FIELDNAME,
+    f_ANOTHERNAME,
+    f_FIELDTYPE,
+    f_DBTYPE,
+    f_DBLENGTH,
+    f_DEFAULTVALUE,
+    f_ENMVALUE,
+    f_NOTNULL,
+    f_CLASSID,
+    f_DBSCALE,
+    f_CRUSER,
+    f_CRTIME,
+    f_VALIDATOR,
+    f_RADORCHK,
+    f_NOTEDIT,
+    f_HIDDENFIELD
+    ;
+
+    select concat('开始修改') info;
+    WHILE isover= 0 DO
+
+      # 断点续传
+      IF (f_TABLEID > preTableId)
+
+        THEN
+              #相关图片
+              if f_FIELDTYPE = 32
+                then
+                set @u_p_sql = contat('UPDATE trs_hycloud_iip.wcmmetatable',f_TABLENAME, citySuffix,' a,
+                                      relphoto_doc b
+                                      SET a.',f_FIELDNAME,' = b.appendixids
+                                      WHERE a.MetaDataId = b.docid and a.MetaDataId > ',preDocId,' ;');
+                    prepare stmt from @u_p_sql;
+                    EXECUTE stmt;
+                    deallocate prepare stmt;
+              end if;
+              #相关视频
+              if f_FIELDTYPE = 20
+                then
+                set @u_v_sql = contat('UPDATE trs_hycloud_iip.wcmmetatable',f_TABLENAME, citySuffix,' a,
+                                      relvideo_doc b
+                                      SET a.',f_FIELDNAME,' = b.appendixids
+                                      WHERE a.MetaDataId = b.docid and a.MetaDataId > ',preDocId,' ;');
+                    prepare stmt from @u_v_sql;
+                    EXECUTE stmt;
+                    deallocate prepare stmt;
+              end if;
+
+              SET @log_sql = build_migration_log_sql('update_data_ralation_appendix', preTableId, now());
+              prepare stmt from @log_sql;
+              EXECUTE stmt;
+              deallocate prepare stmt;
+    END IF ;
+
+		FETCH cur INTO
+      f_DBFIELDINFOID,
+      f_TABLENAME,
+      f_TABLEID,
+      f_FIELDNAME,
+      f_ANOTHERNAME,
+      f_FIELDTYPE,
+      f_DBTYPE,
+      f_DBLENGTH,
+      f_DEFAULTVALUE,
+      f_ENMVALUE,
+      f_NOTNULL,
+      f_CLASSID,
+      f_DBSCALE,
+      f_CRUSER,
+      f_CRTIME,
+      f_VALIDATOR,
+      f_RADORCHK,
+      f_NOTEDIT,
+      f_HIDDENFIELD
+      ;
+		
+	END WHILE;
+
+	CLOSE cur;
+
+  END $$
+DELIMITER ;

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

@@ -16,6 +16,18 @@ CREATE  TABLE `meta_data`(
   PRIMARY KEY (`metadat_id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
+CREATE  TABLE `relphoto_doc`(
+  `docid` BIGINT(20) NOT NULL comment '文档ID',
+  `appendixids` VARCHAR(400) NOT NULL comment '附件字段',
+  PRIMARY KEY (`docid`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE  TABLE `relvideo_doc`(
+  `docid` BIGINT(20) NOT NULL comment '文档ID',
+  `appendixids` VARCHAR(400) NOT NULL comment '附件字段',
+  PRIMARY KEY (`docid`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
 DROP PROCEDURE
 IF
 	EXISTS setOffset;

+ 4 - 1
TRS.WCM.Developer/贵州项目/readme.md

@@ -38,7 +38,10 @@
    ```
    * 迁移附件
    ``` 
-   
+   #迁移附件和mas数据
+   call sp_city_appendix(节点ID);
+   #修改元数据中相关图片,相关视频字段不对(* 该脚本对增量支持不友好)
+   call update_data_relation_appendix(节点ID, masurl前缀);
    ```
    
 

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

@@ -19,7 +19,7 @@ CREATE PROCEDURE sp_data_migration_wcmmetatable(IN citySuffix VARCHAR(20),
       SELECT
         TABLEINFOID,
         TABLENAME
-      FROM trs_data_migration.xwcmtableinfo
+      FROM xwcmtableinfo
       ORDER BY TABLEINFOID asc;
 
     DECLARE CONTINUE HANDLER FOR NOT FOUND SET isover = 1;
@@ -47,12 +47,12 @@ CREATE PROCEDURE sp_data_migration_wcmmetatable(IN citySuffix VARCHAR(20),
 
             select concat('开始更新 ', 'wcmmetatable', f_TABLENAME, citySuffix, '.MetaDataId & ChannelId') info;
 
-            set @del_sql = concat('delete from trs_data_migration.meta_data');
+            set @del_sql = concat('delete from meta_data');
             prepare stmt from @del_sql;
             EXECUTE stmt;
             deallocate prepare stmt;
 
-            SET @doc_sql = concat('INSERT INTO trs_data_migration.meta_data(metadat_id, channel_id) SELECT MetaDataId,ChannelId FROM trs_hycloud_iip.wcmmetatable',
+            SET @doc_sql = concat('INSERT INTO meta_data(metadat_id, channel_id) SELECT MetaDataId,ChannelId FROM trs_hycloud_iip.wcmmetatable',
              f_TABLENAME, citySuffix, ' WHERE MetaDataId >  ', prevDocId);
             prepare stmt from @doc_sql;
             EXECUTE stmt;