6_recover.sql 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. # 执行如下sql可清除之前所有迁移的数据,然后可以开始重新迁移
  2. # !!!如果海云系统启动并恢复了使用,则再也不能执行如下sql了,否则会误删海云的正常数据
  3. # 清除的数据 不包括元数据表,一般情况下,元数据表不需要重新迁移;如果确定元数据有问题,也需要重新迁移,则手工删除所有......_city... 后缀的元数据表即可
  4. DROP PROCEDURE IF EXISTS sp_recover_city;
  5. DELIMITER $$
  6. CREATE PROCEDURE sp_recover_city(IN n INT)
  7. BEGIN
  8. SET @citySuffix = concat('贵州迁移站点__city', @n,'%');
  9. # xx ID 偏移量,获取海云系统中的对应 xx maxID 错开一段距离,改为存入最大id
  10. SET @site_offset_num = ifnull((SELECT max(offset_num) FROM data_migration_offset WHERE table_name = 'wcmwebsite'), 0);
  11. IF (@site_offset_num > 0)
  12. then
  13. DELETE from trs_hycloud_iip.wcmclassification where CNAME like @citySuffix;
  14. DELETE from trs_hycloud_iip.wcmclassificationobj where OBJTYPE = 103 and OBJID > @site_offset_num;
  15. delete from trs_hycloud_iip.wcmwebsite where siteid > @site_offset_num;
  16. END IF ;
  17. SET @view_offset_num = ifnull((SELECT max(offset_num) FROM data_migration_offset WHERE table_name = 'xwcmviewinfo'), 0);
  18. IF (@view_offset_num > 0)
  19. then
  20. delete from trs_hycloud_iip.xwcmviewinfo where viewinfoid > @view_offset_num;
  21. delete from trs_hycloud_iip.xwcmmetaviewfieldgroup where METAVIEWID > @view_offset_num;
  22. END IF ;
  23. SET @tabel_offset_num = ifnull((SELECT max(offset_num) FROM data_migration_offset WHERE table_name = 'xwcmtableinfo'), 0);
  24. IF (@tabel_offset_num > 0)
  25. then
  26. delete from trs_hycloud_iip.xwcmtableinfo where tableinfoid > @tabel_offset_num;
  27. END IF ;
  28. SET @group_offset_num = ifnull((SELECT max(offset_num) FROM data_migration_offset WHERE table_name = 'xwcmmetaviewfieldgroup'), 0);
  29. IF (@group_offset_num > 0)
  30. then
  31. delete from trs_hycloud_iip.xwcmmetaviewfieldgroup where metaviewfieldgroupid > @group_offset_num;
  32. end if;
  33. SET @class_offset_num = ifnull((SELECT max(offset_num) FROM data_migration_offset WHERE table_name = 'xwcmclassinfoview'), 0);
  34. IF (@class_offset_num > 0)
  35. then
  36. delete from trs_hycloud_iip.xwcmclassinfoview where classinfoviewid > @class_offset_num;
  37. end if;
  38. SET @classinfo_offset_num = ifnull((SELECT max(offset_num) FROM data_migration_offset WHERE table_name = 'xwcmclassinfo'), 0);
  39. IF (@classinfo_offset_num > 0)
  40. then
  41. delete from trs_hycloud_iip.xwcmclassinfo where classinfoid > @classinfo_offset_num;
  42. end if;
  43. SET @db_offset_num = ifnull((SELECT max(offset_num) FROM data_migration_offset WHERE table_name = 'xwcmdbfieldinfo'), 0);
  44. IF (@db_offset_num > 0)
  45. then
  46. delete from trs_hycloud_iip.xwcmdbfieldinfo where dbfieldinfoid > @db_offset_num;
  47. END IF ;
  48. SET @employer_offset_num = ifnull((SELECT max(offset_num) FROM data_migration_offset WHERE table_name = 'xwcmmetaviewemployer'), 0);
  49. IF (@employer_offset_num > 0)
  50. then
  51. delete from trs_hycloud_iip.xwcmmetaviewemployer where metaviewemployerid > @employer_offset_num;
  52. END IF ;
  53. SET @xwcmviewfieldinfo_offset_num = ifnull((SELECT max(offset_num) FROM data_migration_offset WHERE table_name = 'xwcmviewfieldinfo'), 0);
  54. IF (@xwcmviewfieldinfo_offset_num > 0)
  55. then
  56. delete from trs_hycloud_iip.xwcmviewfieldinfo where viewfieldinfoid > @xwcmviewfieldinfo_offset_num;
  57. END IF ;
  58. SET @wcmchannel_offset_num = ifnull((SELECT max(offset_num) FROM data_migration_offset WHERE table_name = 'wcmchannel'), 0);
  59. IF (@wcmchannel_offset_num > 0)
  60. then
  61. delete from trs_hycloud_iip.wcmchannel where channelid > @wcmchannel_offset_num;
  62. END IF ;
  63. SET @wcmchannelsyn_offset_num = ifnull((SELECT max(offset_num) FROM data_migration_offset WHERE table_name = 'wcmchannelsyn'), 0);
  64. IF (@wcmchannelsyn_offset_num > 0)
  65. then
  66. delete from trs_hycloud_iip.wcmchannelsyn where channelsynid > @wcmchannelsyn_offset_num;
  67. END IF ;
  68. SET @wcmtemplate_offset_num = ifnull((SELECT max(offset_num) FROM data_migration_offset WHERE table_name = 'wcmtemplate'), 0);
  69. IF (@wcmtemplate_offset_num > 0)
  70. then
  71. delete from trs_hycloud_iip.wcmtemplate where tempid > @wcmtemplate_offset_num;
  72. delete from trs_hycloud_iip.wcmchannelchildindexquote where TEMPLATEID > @wcmtemplate_offset_num;
  73. END IF ;
  74. SET @config_offset_num = ifnull((SELECT max(offset_num) FROM data_migration_offset WHERE table_name = 'wcmfolderpublishconfig'), 0);
  75. IF (@config_offset_num > 0)
  76. then
  77. delete from trs_hycloud_iip.wcmfolderpublishconfig where folderpublishconfigid > @config_offset_num;
  78. END IF ;
  79. SET @cwcmtemplateargument_offset_num = ifnull((SELECT max(offset_num) FROM data_migration_offset WHERE table_name = 'wcmtemplateargument'), 0);
  80. IF (@cwcmtemplateargument_offset_num > 0)
  81. then
  82. delete from trs_hycloud_iip.wcmtemplateargument where templateargumentid > @cwcmtemplateargument_offset_num;
  83. END IF ;
  84. SET @wcmtemplateemploy_offset_num = ifnull((SELECT max(offset_num) FROM data_migration_offset WHERE table_name = 'wcmtemplateemploy'), 0);
  85. IF (@wcmtemplateemploy_offset_num > 0)
  86. then
  87. delete from trs_hycloud_iip.wcmtemplateemploy where templateemployid > @wcmtemplateemploy_offset_num;
  88. END IF ;
  89. SET @wcmtemplatenest_offset_num = ifnull((SELECT max(offset_num) FROM data_migration_offset WHERE table_name = 'wcmtemplatenest'), 0);
  90. IF (@wcmtemplatenest_offset_num > 0)
  91. then
  92. delete from trs_hycloud_iip.wcmtemplatenest where templatenestid > @wcmtemplatenest_offset_num;
  93. END IF ;
  94. SET @wcmtemplatequote_offset_num = ifnull((SELECT max(offset_num) FROM data_migration_offset WHERE table_name = 'wcmtemplatequote'), 0);
  95. IF (@wcmtemplatequote_offset_num > 0)
  96. then
  97. delete from trs_hycloud_iip.wcmtemplatequote where templatequoteid > @wcmtemplatequote_offset_num;
  98. END IF ;
  99. SET @wcmappendix_offset_num = ifnull((SELECT max(offset_num) FROM data_migration_offset WHERE table_name = 'wcmappendix'), 0);
  100. IF (@wwcmtemplatequote_offset_num > 0)
  101. then
  102. delete from trs_hycloud_iip.wcmappendix where appendixid > @wcmappendix_offset_num;
  103. END IF ;
  104. SET @wcmchnldoc_offset_num = ifnull((SELECT max(offset_num) FROM data_migration_offset WHERE table_name = 'wcmchnldoc'), 0);
  105. IF (@wcmchnldoc_offset_num > 0)
  106. then
  107. delete from trs_hycloud_iip.wcmchnldoc where recid > @wcmchnldoc_offset_num;
  108. END IF ;
  109. SET @wcmdocument_offset_num = ifnull((SELECT max(offset_num) FROM data_migration_offset WHERE table_name = 'wcmdocument'), 0);
  110. IF (@wcmdocument_offset_num > 0)
  111. then
  112. delete from trs_hycloud_iip.wcmdocument where docid > @wcmdocument_offset_num;
  113. END IF ;
  114. SET @mas_masid_offset_num = ifnull((SELECT max(offset_num) FROM data_migration_offset WHERE table_name = 'mas_masid'), 0);
  115. IF (@mas_masid_offset_num > 0)
  116. then
  117. delete from trs_mas.mas_masid where id > @mas_masid_offset_num;
  118. END IF ;
  119. SET @mas_masvideo_offset_num = ifnull((SELECT max(offset_num) FROM data_migration_offset WHERE table_name = 'mas_masvideo'), 0);
  120. IF (@mas_masvideo_offset_num > 0)
  121. then
  122. delete from trs_mas.mas_masvideo where id > @mas_masvideo_offset_num;
  123. END IF ;
  124. delete from trs_data_migration.data_migration_log;
  125. END $$
  126. DELIMITER ;
  127. /**
  128. # 清理元数据
  129. USE trs_data_migration;
  130. DROP PROCEDURE IF EXISTS sp_delete_metatables;
  131. DELIMITER $$
  132. CREATE PROCEDURE sp_delete_metatables()
  133. BEGIN
  134. DECLARE isover INT DEFAULT 0;
  135. DECLARE f_TABLENAME varchar(50) DEFAULT NULL;
  136. DECLARE cur CURSOR FOR
  137. SELECT
  138. TABLENAME
  139. FROM trs_data_migration.xwcmtableinfo
  140. ORDER BY TABLEINFOID asc;
  141. DECLARE CONTINUE HANDLER FOR NOT FOUND SET isover = 1;
  142. OPEN cur;
  143. FETCH cur INTO
  144. f_TABLENAME
  145. ;
  146. WHILE isover = 0 DO
  147. SET @sql = concat('create table if not exists ', 'trs_hycloud_iip.wcmmetatable', f_TABLENAME, '(', f_TABLENAME ,'ID INT);');
  148. prepare stmt from @sql;
  149. EXECUTE stmt;
  150. deallocate prepare stmt;
  151. SET @sql = concat('truncate table ', 'trs_hycloud_iip.wcmmetatable', f_TABLENAME);
  152. prepare stmt from @sql;
  153. EXECUTE stmt;
  154. deallocate prepare stmt;
  155. FETCH cur INTO
  156. f_TABLENAME
  157. ;
  158. END WHILE;
  159. CLOSE cur;
  160. END $$
  161. DELIMITER ;
  162. CALL trs_data_migration.sp_delete_metatables();
  163. **/