您在這裡

論壇資料中的回覆資料如何匯入系統!!

MarkC's 的頭像
MarkC 在 2011-05-12 (四) 15:13 發表

想把過去的論壇資料,匯入新的Drupal的Forum....
因為我過去使用的論壇系統較少人使用,所以當對也找不到對應的轉換模組!所以我把腦筋動在node Import這個模組之上,首先我將資料要對應到Drupal的內容先匯出成csv檔(記得要轉UTF-8編碼),然後餵給node Import。
第一個要匯的內容是使用者,第二個是論壇分類,第三個才是文章內容
其中比較要注意的是文章內容的的兩個類型(論壇分類跟使用者),因為在資料庫中大部分都是利用id號來對應,在先前使用者與分類匯入後,id都跑掉了,若要手動來改文章內容的table!不就改死人了!好在node import吃使用者名稱及類別名稱,所以在文章內容的talbe中我就是先把使用者名稱與類別名稱給列出,以利內容的匯入。
基本上到目前這個階段!都可以順利完成任務。
不過額外要提的是:

  1. 資料庫匯出的時候先不要匯成excel!因為若資料過多!Excel不吃。
  2. 即使excel吃了,若你的內容欄位若資料太多(字元長度過長)!會被砍掉(文章內容變不完整)
  3. 在準備匯入前!記得轉換成UTF-8編碼,我是是用UltraEdit轉得,在網站上有大大是用PsPad轉的...

以上是我成功的經驗,供分享!
再來就是我的問題:如何將回覆文章給匯入?
因為在node Import中我找不到這個選項,在Drupal中,我沒找到匯入回覆文的文章,
How to migrate from many different forum systems
其中找到一位網友的粗略說法,也不知道對不對(感覺好像是新增論壇主題文章的作法)
insert into `node` (`created`, `type`, `uid`, `title`, `status`, `comment`) values
(unix_timestamp('2005-10-27 11:18:00'), 'forum', 7, 'My Org branch minutes Oct 26', 1, 2);

insert into `node_revisions` (`nid`, `uid`, `title`, `teaser`, `body`, `timestamp`, `format`) values
(last_insert_id(), 7, 'My Org branch minutes Oct 26', 'Noted that ... [teaser text]', '[Full body of post]', unix_timestamp('2005-10-27 11:18:00'), 1)

update `node` set
`vid` = [vid]
where `nid` = [nid];

insert into `forums` (`nid`,`vid`,`tid`) values
([nid], [vid], [tid]);

insert into `term_node` (`nid`,`vid`,`tid`) values
([nid], [vid], [tid]);

insert into `node_comment_statistics` (`nid`, `last_comment_timestamp`, `last_comment_uid`, `comment_count`) values
([nid], unix_timestamp('2005-10-27 11:18:00'), 7, 0);

請各位大大可否協助一下!還是提供您的經驗給小弟參考參考!感恩喔....