I recently needed to migrate from DedeCMS (dedecms) to Discuz Portal. The most important challenge was how to migrate categories and a large number of articles. The database tables involved are:
dede_addonarticle - Article tabledede_arctype - Category tabledede_relation - Old-to-new category mapping tablepre_portal_article_content - Article content tablepre_portal_article_title - Article title tablepre_portal_article_count - Article view count table1. Preprocess the old table, merge typename 1
2
3
UPDATE dede_addonarticle , dede_arctype
SET dede_addonarticle . typename = dede_arctype . typename
WHERE dede_arctype . id = dede_addonarticle . typeid ;
2. Merge click, title, writer, pubdate, keywords, description 1
2
3
4
5
6
7
8
9
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. Generate new IDs in relation 1
2
3
UPDATE dede_relation , pre_portal_category
SET dede_relation . catid = pre_portal_category . catid
WHERE dede_relation . new = pre_portal_category . catname ;
4. Populate catid based on typename and relation 1
2
3
UPDATE dede_addonarticle , dede_relation
SET dede_addonarticle . catid = dede_relation . catid
WHERE dede_addonarticle . typename LIKE CONCAT ( "%" , dede_relation . olds , "%" );
5. Import into Discuz Portal Tables Insert into pre_portal_article_content (Article content table) 1
2
3
INSERT INTO pre_portal_article_content ( aid , title , content , dateline )
SELECT aid , title , body , pubdate AS dateline
FROM dede_addonarticle ;
Insert into pre_portal_article_title (Article title table) 1
2
3
INSERT INTO pre_portal_article_title ( aid , username , title , author , summary , dateline )
SELECT aid , 'admin' , title , writer AS author , description AS summary , pubdate AS dateline
FROM dede_addonarticle ;
Insert into pre_portal_article_count (Article view count table) 1
2
3
INSERT INTO pre_portal_article_count ( aid , cid , viewnum )
SELECT aid , catid , click
FROM dede_addonarticle ;
Licensed under CC BY-NC-SA 4.0