3_sp_data_migration_wcmfolderpublishconfig.sql 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. DROP PROCEDURE IF EXISTS sp_data_migration_wcmfolderpublishconfig;
  2. DELIMITER $$
  3. CREATE PROCEDURE sp_data_migration_wcmfolderpublishconfig(IN prevFolderPublishConfigId BIGINT(20),
  4. IN folderPublishConfigIdOffset BIGINT(20),
  5. IN siteIdOffset BIGINT(20),
  6. IN channelIdOffset BIGINT(20))
  7. BEGIN
  8. DECLARE isover INT DEFAULT 0;
  9. DECLARE migr_table_name varchar(255) DEFAULT 'wcmfolderpublishconfig';
  10. DECLARE site_migr_table_name varchar(255) DEFAULT 'wcmwebsite';
  11. DECLARE channel_migr_table_name varchar(255) DEFAULT 'wcmchannel';
  12. DECLARE f_FOLDERPUBLISHCONFIGID int(11) DEFAULT 0;
  13. DECLARE f_FOLDERTYPE int(11) DEFAULT 0;
  14. DECLARE f_FOLDERID int(11) DEFAULT 0;
  15. DECLARE f_OUTLINEFILE varchar(100) DEFAULT NULL;
  16. DECLARE f_DETAILFILEEXT varchar(10) DEFAULT NULL;
  17. DECLARE f_DATAPATH varchar(200) DEFAULT NULL;
  18. DECLARE f_CRUSER varchar(30) DEFAULT NULL;
  19. DECLARE f_CRTIME datetime DEFAULT NULL;
  20. DECLARE f_ROOTDOMAIN varchar(250) DEFAULT NULL;
  21. DECLARE f_SITELANGUAGE int(11) DEFAULT NULL;
  22. DECLARE f_PAGEENCODING varchar(50) DEFAULT NULL;
  23. DECLARE cur CURSOR FOR
  24. SELECT
  25. FOLDERPUBLISHCONFIGID,
  26. FOLDERTYPE,
  27. FOLDERID,
  28. OUTLINEFILE,
  29. DETAILFILEEXT,
  30. DATAPATH,
  31. CRUSER,
  32. CRTIME,
  33. ROOTDOMAIN,
  34. SITELANGUAGE,
  35. PAGEENCODING
  36. FROM wcmfolderpublishconfig
  37. ORDER BY FOLDERPUBLISHCONFIGID asc;
  38. DECLARE CONTINUE HANDLER FOR NOT FOUND SET isover = 1;
  39. OPEN cur;
  40. FETCH cur INTO
  41. f_FOLDERPUBLISHCONFIGID,
  42. f_FOLDERTYPE,
  43. f_FOLDERID,
  44. f_OUTLINEFILE,
  45. f_DETAILFILEEXT,
  46. f_DATAPATH,
  47. f_CRUSER,
  48. f_CRTIME,
  49. f_ROOTDOMAIN,
  50. f_SITELANGUAGE,
  51. f_PAGEENCODING
  52. ;
  53. select concat('开始迁移 ', migr_table_name) info;
  54. WHILE isover= 0 DO
  55. # 断点续传
  56. IF (f_FOLDERPUBLISHCONFIGID > prevFolderPublishConfigId)
  57. THEN
  58. SET @FOLDERPUBLISHCONFIGID = f_FOLDERPUBLISHCONFIGID;
  59. SET f_FOLDERPUBLISHCONFIGID = f_FOLDERPUBLISHCONFIGID + folderPublishConfigIdOffset;
  60. IF (f_FOLDERTYPE = 103)
  61. THEN
  62. 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), siteIdOffset);
  63. SET f_FOLDERID = f_FOLDERID + @site_offset_num;
  64. END IF ;
  65. IF (f_FOLDERTYPE = 101)
  66. THEN
  67. 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), channelIdOffset);
  68. SET f_FOLDERID = f_FOLDERID + @channel_offset_num;
  69. END IF ;
  70. insert into trs_hycloud_iip.wcmfolderpublishconfig
  71. (
  72. FOLDERPUBLISHCONFIGID,
  73. FOLDERTYPE,
  74. FOLDERID,
  75. OUTLINEFILE,
  76. DETAILFILEEXT,
  77. DATAPATH,
  78. CRUSER,
  79. CRTIME,
  80. ROOTDOMAIN,
  81. SITELANGUAGE,
  82. PAGEENCODING
  83. )
  84. VALUES
  85. (
  86. f_FOLDERPUBLISHCONFIGID,
  87. f_FOLDERTYPE,
  88. f_FOLDERID,
  89. f_OUTLINEFILE,
  90. f_DETAILFILEEXT,
  91. f_DATAPATH,
  92. f_CRUSER,
  93. f_CRTIME,
  94. f_ROOTDOMAIN,
  95. f_SITELANGUAGE,
  96. f_PAGEENCODING
  97. );
  98. SET @log_sql = build_migration_log_sql(migr_table_name, @FOLDERPUBLISHCONFIGID, now());
  99. prepare stmt from @log_sql;
  100. EXECUTE stmt;
  101. deallocate prepare stmt;
  102. call setOffset(migr_table_name, folderPublishConfigIdOffset, prevFolderPublishConfigId, @FOLDERPUBLISHCONFIGID);
  103. END IF ;
  104. FETCH cur INTO
  105. f_FOLDERPUBLISHCONFIGID,
  106. f_FOLDERTYPE,
  107. f_FOLDERID,
  108. f_OUTLINEFILE,
  109. f_DETAILFILEEXT,
  110. f_DATAPATH,
  111. f_CRUSER,
  112. f_CRTIME,
  113. f_ROOTDOMAIN,
  114. f_SITELANGUAGE,
  115. f_PAGEENCODING
  116. ;
  117. END WHILE;
  118. CLOSE cur;
  119. select concat('完成迁移 ', migr_table_name) info;
  120. END $$
  121. DELIMITER ;