readme.md 7.2 KB

SQL脚本说明:

  • 0开头:脚本为数据修复类SQL。
  • 1开头:脚本中间表。有data_migration_log(迁移日志表)、data_migration_offset(迁移偏移量表)
  • 3开头:脚本为迁移表对应的存储过程。
  • 4开头:脚本为迁移执行脚本。主要数据迁移的脚本都在脚本中。
  • 6开头:脚本为清除本次迁移的数据脚本。

    迁移方式

  1. 创建中间库,如:trs_data_migration_city*(用于迁移wcm数据;*表示节点ID)和 trs_data_migration_mas(用于迁移MAS数据);
    • 将WCM中的以下表迁移到trs_data_migration_city*
      • 所有元数据表(wcmmetatable...)
      • wcmappendix
      • wcmchannel
      • wcmchannelchildindexquote
      • wcmchannelsyn
      • wcmchnldoc
      • wcmdocument
      • wcmfolderpublishconfig
      • wcmtemplate
      • wcmtemplateargument
      • wcmtemplateemploy
      • wcmtemplatenest
      • wcmtemplatequote
      • wcmwebsite
      • xwcmclassinfo
      • xwcmclassinfoview
      • xwcmdbfieldinfo
      • xwcmmaterial
      • xwcmmetaviewemployer
      • xwcmmetaviewfieldgroup
      • xwcmtableinfo
      • xwcmviewfieldinfo
      • xwcmviewinfo
    • 将mas表的数据迁移到trs_data_migration_mas
      • mas_publishedvideo
      • mas_videostream
      • mas_masid
      • mas_masvideo
  2. 处理中间库的脏数据和加载SQL脚本。

    • 中间库trs_data_migration_city,在Navicat中,中间库运行0-3开头的所有SQL存储过程。如果该节点第一次运行使用全量下的迁移SQL; 在trs_data_migration_mas运行3_sp_data_migration_mas.sql;
    • 清理脏数据脚本。

      #删除有问题的素材库数据
      DELETE FROM xwcmmaterial WHERE MATERIALTYPE = 1 and FILENAME is NULL;
      DELETE FROM xwcmmaterial WHERE MATERIALTYPE = 2 and MASID is NULL;
      #查询表中是否存在唯一建重复
      SELECT DOCID,CHNLID FROM wcmchnldoc GROUP BY DOCID,CHNLID HAVING COUNT(1) > 1;
      create table t_chnldoc as SELECT MAX(RECID) as 'RECID',DOCID,CHNLID,count(1) datacount FROM wcmchnldoc GROUP BY DOCID,CHNLID HAVING COUNT(1) > 1 ;
      DELETE FROM wcmchnldoc WHERE recid IN(SELECT recid FROM t_chnldoc);
      
      • 添加素材库的索引。 sql ALTER TABLE `xwcmmaterial` ADD PRIMARY KEY (`MATERIALID`); ALTER TABLE `xwcmmaterialquote` ADD INDEX (`MATERIALID`) USING BTREE , ADD INDEX (`DOCID`) USING BTREE ;
  3. 迁移站点,栏目,视图,模板等基本数据。(用户可以在新系统中增加角色,调整视图和模板)

    • 中间库trs_data_migration_city*,处理数据中视图字段,使字段字段对应;

      # 相关视频 FieldType 由 51 变为 20
      update XWCMDBFieldInfo set FieldType=20 where FieldType=51;
      update XWCMViewFieldInfo set FieldType=20 where FieldType=51;
      # 相关图片 FieldType 由 50 变为 32
      update XWCMDBFieldInfo set FieldType=32 where FieldType=50;
      update XWCMViewFieldInfo set FieldType=32 where FieldType=50;
      # 相关文档 FieldType 由 57 变为 31
      update XWCMDBFieldInfo set FieldType=31 where FieldType=57;
      update XWCMViewFieldInfo set FieldType=31 where FieldType=57;
      # mw_文本框 FieldType 由 53 变为 3
      update XWCMDBFieldInfo set FieldType=3 where FieldType in (53,65);
      update XWCMViewFieldInfo set FieldType=3 where FieldType in (53,65);
      # mw_是否按钮 FieldType 由 54 变为 5
      update XWCMDBFieldInfo set FieldType=5 where FieldType=54;
      update XWCMViewFieldInfo set FieldType=5 where FieldType=54;
      # mw_时间按钮FieldType 由 55 变为 11
      update XWCMDBFieldInfo set FieldType=11 where FieldType=55;
      update XWCMViewFieldInfo set FieldType=11 where FieldType=55;
      # mw_复杂编辑器 FieldType 由 63 变为 12
      update XWCMDBFieldInfo set FieldType=12 where FieldType=63;
      update XWCMViewFieldInfo set FieldType=12 where FieldType=63;
      
      • 中间库trs_data_migration_city*,迁移站点,栏目,视图到trs_hycloud_iip; sql call sp_city_base(节点ID);
    • 中间库trs_data_migration_city*,处理元数据表信息;需要先对迁移元数据表进行整理,将需要迁移的元数据表拷贝到中间库;

      • 执行存储过程update_data_dbfield.sql和update_data_table.sql,。中间库,删除多余字段元数据,添加默认的元数据字段

        # 注意该脚本结果为sql 脚本。需要复制脚本再执行一遍。
        call update_data_table('_city4',迁移起始tabelinfoID);
        
        • 中间库trs_data_migration_city*,中间库修改元数据表名; sql #获取修改元数据的表名的SQL;拷贝以下SQL生成的结果,运行生成的SQL。 SELECT CONCAT( 'ALTER TABLE ', table_name, ' RENAME TO ', table_name, '_city4', ';' ) sqls FROM information_schema.TABLES WHERE table_schema = '中间库的数据库名称,比如:trs_data_migration_city4' AND table_name LIKE 'wcmmetatable%';
      • 中间库trs_data_migration_city*,生成创建表sql以保存元数据表索引;拷贝以下SQL生成的结果,运行生成的SQL。

        SELECT concat('create table trs_hycloud_iip.wcmmetatable',TABLENAME,'_city5 like ','wcmmetatable',TABLENAME,'_city5;') from xwcmtableinfo;
        
        1. 迁移数据 和 附件。
        • 中间库trs_data_migration_city*,将wcmdocuemnt,wcmchnldoc 元数据表中的数据拷贝到trs_hycloud_iip;拷贝以下SQL生成的结果,运行生成的SQL。 sql #生成插入数据sql SELECT concat('INSERT INTO trs_hycloud_iip.wcmmetatable',TABLENAME,'_city5 SELECT * from ','wcmmetatable',TABLENAME,'_city5;') from xwcmtableinfo;
    • 中间库trs_data_migration_city*,执行迁移脚本

      #注意检查其中sp_data_migration_wcmmetatable 存储过程是否执行成功。查看结果是否存在 "sp_data_migration_wcmmetatable 执行完成"
      call sp_city_data(节点ID)
      
      • 中间库 trs_data_migration_mas,迁移mas数据 注意必须要对迁移数据表建主键索引 sql #mas数据迁移 call sp_city_mas();
    • 中间库trs_data_migration_city*,迁移附件 注意必须要对迁移数据表建主键索引

      #迁移附件
      call sp_city_appendix(节点ID, masID的偏移量);
      
      • 中间库trs_data_migration_city*,修改元数据中相关图片,相关视频字段不对 sql #注意检查其中update_data_relation_appendix_2 存储过程是否执行成功。查看结果是否存在 "update_data_relation_appendix_2 执行完成" call update_data_relation_appendix(节点ID, masurl前缀, 起始tabelID,起始docId);
    • 其他工具

    • 自动生成索引 索引相关规则

      • 修改表名 sql #生成SQL,用与修改元数据,视图,字段名称符合自动生成索引的标准。 update_data_idxid(视图ID);