各位好:
站架得差不多了,想要把以前舊站的sql資料庫內容,轉入新的站。
搜尋了一下站內有關import\export的文章,好像都沒有人針對這個問題做過討論。
到官網搜尋到importexportapi這個模組,下載試用的結果,一頭霧水。不小心把模組的範例檔弄進了自己的user資料裡頭,還以為有駭客跑來駭我說。
想請教有沒有人用過importexportapi這個模組呢?可否說明一下這個模組的使用經驗?
TKY舊站裡頭有上百筆的新聞、公告資料,可不想一筆一筆的key in進drupal,會累死。可是又擔心不這麼做的話,匯入的舊資料會缺少drupal的分類、語言等設定,到時候還是得一筆一筆改。
TKY
Re: 有沒有人使用過importexportapi這個模組呢?
舊網站是 Drupal 那一版? 還是其他 CMS?
我是用過 node import,透過 CSV 檔案匯入資料...
Re: 有沒有人使用過importexportapi這個模組呢?
嗯,都不是ㄟ。是TKY以前用php+SQL自己寫的網站。有很簡單的基本結構,像標題、內容、分類等等。
想說,到時候要用mysql的匯出功能,將舊檔案匯出成CSV檔。然後把新站的檔案也匯出成CSV檔。接著在EXCEL或ACCESS中做整合,整合之後在匯入新站裡頭。
node import好用嗎?看檔名,好像只能匯入不能匯出ㄟ。順帶一問:用EXCEL的檔案也可以匯進去嗎?
TKY
Re: 有沒有人使用過importexportapi這個模組呢?
node import不錯用,excel可以轉成csv然後再匯入啊。
Re: 有沒有人使用過importexportapi這個模組呢?
謝謝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
Re: 有沒有人使用過importexportapi這個模組呢?
4.7 可以用啊,我之前就是用在 4.7.3。
請去下載他的cvs(head)版本:
http://drupal.org/node/4840/release
Re: 有沒有人使用過importexportapi這個模組呢?
謝謝charlesc:
TKY用過了,非常好用的模組。
比importexportapi來得容易、簡單多了!
不過目前碰到一個麻煩,就是TKY部分的node type有設定CCK的node reference。比如說「課程介紹」node type的「開課教師」欄位refer到「師資介紹」node type的「node標題(教師姓名)」。
把之前的課程舊資料匯入時,「開課教師」欄位不吃文字檔的內容。會出現亂掉的連結標題、連結到其他的node id去(比如說討論區)。
這個,蠻頭痛的。因為課程有兩百多筆資料,就算不匯入這個欄位的資料,要一筆一筆改這個地方、重新連結兩個node type,也是一件累死人的工作!
不曉得有沒有人有更好的建議或作法?
TKY
Re: 有沒有人使用過importexportapi這個模組呢?
我覺得... 兩百比,還可以手動改一下,一天改20筆~
因為node reference的對應,是根據舊的nid來對應的
如果有新的,除非你寫了一個新舊id對照表,也需要程式的幫忙才有辦法解決
這樣的東西有經驗也要3小時
跟你設定200筆不會相去太遠
Re: 有沒有人使用過importexportapi這個模組呢?
謝謝jimmy的建議。
TKY後來做了一個小小的更改來縮短這個程序。就是利用CCK另外製作一個文字欄位,先把師資姓名匯入到這個欄位,然後一筆一筆的在每個node編輯頁面中,比對欄位中的姓名,加上node reference的選項。
這樣比較簡單一點。只是仍要修改近三百筆的資料,唉。分幾天做吧!
TKY因為大量修改node的工作,發現一個令人困擾的地方:
1. 用node import匯入的node並不會預設「已發表」,所以得濾出未發表的文章,然後一筆一筆勾選、集體改成「已發表」。快三百筆的資料,勾到眼都花了。為什麼不設置一個「勾選全部」的勾選框呢!?My God!或者,要怎麼才能讓匯入的node一開始就是「已發表」呢?
(語言選項也是一個麻煩的問題,要一筆一筆改成中文,哇!)
2.在「管理>>內容」的頁面中,濾出不同node的方式有點太簡單了一點。只有分類、類型與發表與否等等。像TKY一直在修改大量node的某一個欄位,就無法以修改與否或者有資料與否,來濾出不同的node。只好自己在修改時,祈禱眼睛不要花。
相說,有沒有什麼管理模組是可以做到上述兩點工作的?
還有兩百筆資料要改的
TKY
Re: 有沒有人使用過importexportapi這個模組呢?
沒有全部勾選的功能實在不應該,不過,我記得node import可以設定為已發表啊。不然的話,直接去下mysql指令比較省事。
Re: 有沒有人使用過importexportapi這個模組呢?
對啊!我每次import之前都有勾選「已發表」,奇怪它就是不理我說。
害我按滑鼠按到手指頭抽筋。
還是說,我直接在cvs中增加一個欄位,全都設定一樣的數值,然後improt為「發表」這個項目的數值就可以了?
只是TKY還搞不清楚,發表選項的數值設定為何;全部都是1嗎?
SQL資料表現在已經有太多資料了,看到眼花說。
TKY