最近遇到一个问题,想从织梦CMS(dedecms)迁移到Discuz Portal数据库,其中最重要的问题是如何将栏目和大量的文章进行迁移。
涉及到的数据表有:
dede_addonarticle 文章表
dede_arctype 栏目表
dede_relation 新旧栏目对应关系表
pre_portal_article_content 文章表
pre_portal_article_title 文章题目表
pre_portal_article_count 文章浏览数表
1. 预处理旧表 合并typename
update dede_addonarticle, dede_arctype set dede_addonarticle.typename = dede_arctype.typename where dede_arctype.id = dede_addonarticle.typeid;
2. 合并click title writer pubdate keywords description
update dede_addonarticle , dede_archives set dede_addonarticle.click = dede_archives.click, dede_addonarticle.title = dede_archives.title, dede_addonarticle.writer = dede_archives.writer, dede_addonarticle.pubdate = dede_archives.pubdate, dede_addonarticle.keywords = dede_archives.keywords, dede_addonarticle.description = dede_archives.description where dede_archives.id = dede_addonarticle.aid;
3. 生成relation new id
update dede_relation, pre_portal_category set dede_relation.catid = pre_portal_category.catid where dede_relation.new = pre_portal_category.catname;
4. dede_addonarticle 根据typename 和 relation填充catid
update dede_addonarticle, dede_relation set dede_addonarticle.catid = dede_relation.catid where dede_addonarticle.actype like concat("%", dede_relation.olds, "%")
5. 导入discuz – pre_portal_article_content(文章表), pre_portal_article_title(文章题目表), pre_portal_article_count(文章浏览数表)
insert into pre_portal_article_content(aid, title, content, dateline) values (select aid, title, body, pudate as dateline from dede_addonarticle)</p> <p>insert into pre_portal_article_title(aid, username, title, author, summary, dateline) values (select aid, 'admin', title, writer as author, description as summary, pudate as dateline from dede_addonarticle)</p> <p>insert into pre_portal_article_count(aid, cid, viewnum) values (select aid, catid, click as dateline from dede_addonarticle)