SQL脚本说明:
- 0开头:脚本为数据修复类SQL。
- 1开头:脚本中间表。有data_migration_log(迁移日志表)、data_migration_offset(迁移偏移量表)
- 3开头:脚本为迁移表对应的存储过程。
- 4开头:脚本为迁移执行脚本。主要数据迁移的脚本都在脚本中。
6开头:脚本为清除本次迁移的数据脚本。
迁移方式
处理中间库的脏数据和加载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 ;
迁移站点,栏目,视图,模板等基本数据。(用户可以在新系统中增加角色,调整视图和模板)
中间库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;
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);
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;
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)
sql
#mas数据迁移
call sp_city_mas();
中间库trs_data_migration_city*,迁移附件 注意必须要对迁移数据表建主键索引
#迁移附件
call sp_city_appendix(节点ID, masID的偏移量);
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);