在Drupal 6網站搭建中,我一直用Node import來導入已有數據,感覺還不錯。但近期在搭建Drupal 7網站的時候,發現Node import這個模塊已經停止開發for Drupal 7的版本了,看到推薦的替代工具是Feeds,于是這幾天摸索了一番,現在基本上可以正常使用了。有幾個地方需要注意的記錄下來:
- 提交的用戶不要使用默認的Anonymous,否則可能因為權限問題而報錯;
- 可以用浏覽器界面查看實時導入進展情況,也可以改為後台運行cron來每次50頁提交需要導入的數據;
- 提交的文件應該設置為UTF-8 UNIX格式,否則遇到非英文字母、數字的時候,可能報錯;
- 可以把字段設置為自動完成的分類,用feeds導入文字後變成新的分類,這個功能很方便,減少了以前用node_import導入完成後用用php程序分類的環節;
- 一個奇怪的Bug:純數字導入字段時消失了,要在數字後面加一個空格,這是在drupal官方網站上搜索到的解決辦法;
- 當導入一個大文件而中途中斷後,按鈕變成了灰色,無法繼續,從官方網站上查到需要進入數據庫修改feeds_source表中某個字段,真是太不完善了
评论12
補充:Drupal和Feeds升級後,對于中斷導入的處理
補充:Drupal 7從7.12升級到7.15并且feeds也升級後,數據庫結構發生了變化,以前的text可以直接編輯,現在的blob無法直接編輯,可以直接把feeds_source中的中斷的項整個删除,然後重新添加導入就可以。
文本字段為0不能輸入的問題
Drupal 7下feeds-7.x-2.0-alpha8導入csv文件時,為0的值不能導入文本字段,修改modules/feeds/mappers/text.inc:
這樣0就不會被跳過了,可以導入。
原始文件中文本字段為空,導入可能成了上一次的值
Drupal 7.26+Feeds 7.x-2.0-alpha8導入後發現一些頁面字段明顯不對,詳細核查後發現一些本來為空的字段變成了不相關的其他頁面的内容,網上查到據說是Feeds的Bug,下載最新的feeds 7.x-2.x-dev(2014-Feb-11版)後,重新導入可以覆蓋以前的錯誤。
無head的csv文件導入
geonamebase.com系列站2013年8月導入時遇到無head的csv文件字段對應的問題,通過搜索資料修改sites/all/modules/feeds/feeds_ui.admin.inc 可以解決:
feeds導入大CSV文件,中斷
“當導入一個大文件而中途中斷後,按鈕變成了灰色,無法繼續,從官方網站上查到需要進入數據庫修改feeds_source表中某個字段,真是太不完善了” 我也遇到了,怎麼辦?尋求幫助。改用feeds新版本來解決
請将drupal 7配套的feeds升級到最新版本,有一個unlock解鎖的功能,遇到中斷、按鈕變灰色的時候,就可以點擊菜單中的這個功能來解決。
Feeds無法導入多個tags
Drupal和Feeds都是7.x版本,當導入多個tags時(比如:"标簽1,标簽2,标簽3"),Feeds把這些标簽當作一個标簽導入,無法導入3個标簽。請求你的幫助,謝謝!問題已解決
又在你的網站上看到這個插件Feeds Tamper,安裝後自己搗鼓了一番,居然成功導入多值字段。 後來又從Drupal官網上看到詳細介紹:/node/2287473(你的博客不讓發鍊接,隻有這個不完整格式的網址了,有需要的朋友自己補全網址去看吧,呵呵),和我測試的方法一緻,看來學習無止境啊! 也感謝勁松兄的博客給我的幫助,謝謝!解決了就好!
别客氣,大家互相交流學習!不讓發鍊接是怕垃圾太多,沒有辦法的舉措,望諒解。
Fatal error : Allowed memory size of 103809024 bytes exhausted
勁松兄,不好意思,在使用Feeds導入數據時,又遇到一個問題,向你請教。當我用Feeds多次導入數據、累計達到2000多條Node時,出現以下錯誤提示: 發生一個AJAX HTTP錯誤。 HTTP返回代碼:200 調試信息如下。 路徑:/batch?render=overlay&id=32&op=do 狀态文本: OK 響應文本: Fatal error: Allowed memory size of 103809024 bytes exhausted (tried to allocate 262144 bytes) in /……/html/modules/taxonomy/taxonomy.module on line 1658 我在網上找了方法,都是讓修改php.ini中的memory_limit,但是這并不能解決問題。我想這可能是因為:每次導入php腳本都會請求更大的内存空間,不管以後将memory_limit設置成多大,以後肯定出問題。 我又查看了一下taxonomy.module的第1658行代碼:$options[$term->tid] = str_repeat('-', $term->depth) . $term->name; 這行代碼包含在下面這段代碼中: function taxonomy_allowed_values($field) { $options = array(); foreach ($field['settings']['allowed_values'] as $tree) { if ($vocabulary = taxonomy_vocabulary_machine_name_load($tree['vocabulary'])) { if ($terms = taxonomy_get_tree($vocabulary->vid, $tree['parent'])) { foreach ($terms as $term) { $options[$term->tid] = str_repeat('-', $term->depth) . $term->name; } } } } return $options; } 我搞不懂到底哪裡出了問題。不知道,勁松兄在使用Feeds導入數據過程中是否遇到過此類問題,煩請不吝賜教,謝謝!增加内存設置
你好!我在feeds導入中沒有遇到你說的Fatal error: Allowed memory size of xxx bytes exhausted報錯,但在其它操作中也多次遇到内存不足的問題,一般也都是修改php.ini的内存限制來解決的,也有需要修改Drupal模塊中部分PHP程序來解決的,從你貼上的taxonomy.module中的部分片段來看,還看不出明顯問題,所以我建議你修改php.ini的memory_limit來試一試。我們一般都至少設置為512M,甚至臨時設置成幾個G來運行。
感謝指導,問題暫時解決
感謝勁松兄,按照你的建議,先增加memory_limit,問題暫時解決。如果今後還出現,就再增加,謝謝!