您在這裡

有沒有人使用過importexportapi這個模組呢?

tky's 的頭像
tky 在 2006-12-14 (四) 14:31 發表

各位好:

站架得差不多了,想要把以前舊站的sql資料庫內容,轉入新的站。
搜尋了一下站內有關import\export的文章,好像都沒有人針對這個問題做過討論。

到官網搜尋到importexportapi這個模組,下載試用的結果,一頭霧水。不小心把模組的範例檔弄進了自己的user資料裡頭,還以為有駭客跑來駭我說。

想請教有沒有人用過importexportapi這個模組呢?可否說明一下這個模組的使用經驗?

TKY舊站裡頭有上百筆的新聞、公告資料,可不想一筆一筆的key in進drupal,會累死。可是又擔心不這麼做的話,匯入的舊資料會缺少drupal的分類、語言等設定,到時候還是得一筆一筆改。

TKY

嗯,都不是ㄟ。是TKY以前用php+SQL自己寫的網站。有很簡單的基本結構,像標題、內容、分類等等。

想說,到時候要用mysql的匯出功能,將舊檔案匯出成CSV檔。然後把新站的檔案也匯出成CSV檔。接著在EXCEL或ACCESS中做整合,整合之後在匯入新站裡頭。

node import好用嗎?看檔名,好像只能匯入不能匯出ㄟ。順帶一問:用EXCEL的檔案也可以匯進去嗎?

TKY

tky

謝謝charlesc。
我跑去官網看過,node import只有4.6版的,我在我的4.7版裝過,運作會出現一片空白。不過我不認為是記憶體吃光的問題,因為我的RAM上限已經調到40MB這麼高了。

所以應該就是不合用。

另外,TKY用importexportapi的方式是,先匯出TKY想要匯進資料的內容type資料,例如「公告」。
1. 匯成CSV檔,會出現三種檔案的CSV:簡單來講是「標題」、「內容」與「分類」三個部分。直接複製它們的內容貼到記事本,改檔名為CVS的話,EXCEL和ACCESS是可以吃的;可以吃的情況下就可以寫入新資料。不過因為分散成三個檔案,TKY不曉得說要怎麼匯回去!

2. 匯成XML檔案,會把所有資料都變成一個XML檔案。這很好;不過EXCEL和ACCESS都吃不了那種XML檔案!開啟時都說有問題!
既然吃不了,也就沒辦法寫了。

這是麻煩所在。

另,TKY把自己原有的資料庫從phpmyadmin中匯出成可用的CSV檔案,再匯入Drupal時,畫面總是出現空白!不曉得是因為mapping的地方出問題,還是記憶體的問題。總之就是一直不成功!

不曉得匯入匯出的檔案在欄位方面一定要一一對應?TKY原有的資料欄位很少,不像Drupal這般複雜,自然無法全部對應。

最近碰到一堆的問題,真煩啊!

TKY

tky

謝謝charlesc:

TKY用過了,非常好用的模組。
比importexportapi來得容易、簡單多了!

不過目前碰到一個麻煩,就是TKY部分的node type有設定CCK的node reference。比如說「課程介紹」node type的「開課教師」欄位refer到「師資介紹」node type的「node標題(教師姓名)」。

把之前的課程舊資料匯入時,「開課教師」欄位不吃文字檔的內容。會出現亂掉的連結標題、連結到其他的node id去(比如說討論區)。

這個,蠻頭痛的。因為課程有兩百多筆資料,就算不匯入這個欄位的資料,要一筆一筆改這個地方、重新連結兩個node type,也是一件累死人的工作!

不曉得有沒有人有更好的建議或作法?

TKY

tky

我覺得... 兩百比,還可以手動改一下,一天改20筆~
因為node reference的對應,是根據舊的nid來對應的
如果有新的,除非你寫了一個新舊id對照表,也需要程式的幫忙才有辦法解決

這樣的東西有經驗也要3小時
跟你設定200筆不會相去太遠

--
from open mind to open source~

謝謝jimmy的建議。

TKY後來做了一個小小的更改來縮短這個程序。就是利用CCK另外製作一個文字欄位,先把師資姓名匯入到這個欄位,然後一筆一筆的在每個node編輯頁面中,比對欄位中的姓名,加上node reference的選項。

這樣比較簡單一點。只是仍要修改近三百筆的資料,唉。分幾天做吧!

TKY因為大量修改node的工作,發現一個令人困擾的地方:

1. 用node import匯入的node並不會預設「已發表」,所以得濾出未發表的文章,然後一筆一筆勾選、集體改成「已發表」。快三百筆的資料,勾到眼都花了。為什麼不設置一個「勾選全部」的勾選框呢!?My God!或者,要怎麼才能讓匯入的node一開始就是「已發表」呢?
(語言選項也是一個麻煩的問題,要一筆一筆改成中文,哇!)

2.在「管理>>內容」的頁面中,濾出不同node的方式有點太簡單了一點。只有分類、類型與發表與否等等。像TKY一直在修改大量node的某一個欄位,就無法以修改與否或者有資料與否,來濾出不同的node。只好自己在修改時,祈禱眼睛不要花。

相說,有沒有什麼管理模組是可以做到上述兩點工作的?

還有兩百筆資料要改的
TKY

tky

對啊!我每次import之前都有勾選「已發表」,奇怪它就是不理我說。
害我按滑鼠按到手指頭抽筋。

還是說,我直接在cvs中增加一個欄位,全都設定一樣的數值,然後improt為「發表」這個項目的數值就可以了?
只是TKY還搞不清楚,發表選項的數值設定為何;全部都是1嗎?

SQL資料表現在已經有太多資料了,看到眼花說。

TKY

tky