2011-09-24 23 views
0

您好我有一些sql表,我想轉換這些在「Drupal節點格式」,但我不知道該怎麼做。有人知道至少有哪些表必須寫入,以便擁有包含所有鍵等的完整節點嗎?如何隱藏一個mySql數據庫到Drupal格式表

我舉一個例子:

我有論文對象:

動漫 場animeID 場animeName

生產者 場producerID 場producerName

個AnimeProducers 場animeID 場producerID

我已經使用CCK模塊和我在我的Drupal新的內容類型動畫與新的數據類型生產中存在的一個動畫對象創建的。

我怎樣才能從我的簡單的MySQL數據庫插入到Drupal的所有數據?

對不起,長的帖子,我想給你理解我的問題提前

THX您的時間來閱讀我的文章

回答

0

MMMMM的機會....我想你可以導出從您的SQL數據庫CVS然後用

http://drupal.org/project/node_import

這個CVS數據導入到節點..... MMMM我不知道是否有另一種非編程方式

+0

不幸的是我使用的是drupal 7,所以這個模塊不支持這個版本:(thx的回覆thow –

+0

http://drupal.org/project/feeds –

0

節點屬性數據的主要表格是nodenode_revision,查看這些列中的列,它應該是非常明顯的,需要在這些列中進行。

就領域而言,他們的存儲是可預測的,所以你可以自動導入(儘管我不羨慕你必須寫這個!)。如果你的字段被稱爲'field_anime',它的數據將存在兩個表中:field_data_field_animefield_revision_field_anime,它們由實體ID(在這種情況下是節點ID),實體類型(在'節點'本身的情況下)和捆綁情況下你的節點類型的名稱)。您應該保持兩個表都是最新的,以確保修訂系統正常運行。

做到這一點雖然最簡單的方法是用PHP和節點API函數:

/* This is for a single node, obviously you'd want to loop through your custom SQL data here */ 
$node = new stdClass; 
$node->type = 'my_type'; 
$node->title = 'Title'; 
node_object_prepare($node); 

// Fields 
$node->field_anime[LANGUAGE_NONE] = array(0 => array('value' => $value_for_field)); 
$node->field_producer[LANGUAGE_NONE] = array(0 => array('value' => $value_for_field)); 
// And so on... 

// Finally save the node 
node_save($node); 

如果您使用此方法的Drupal會爲你處理了很多亂七八糟的東西(例如更新taxonomy_index表自動添加分類術語字段到節點)

1

您可以使用Feeds模塊導入平面CSV文件,或者有一個名爲Migrate的模塊似乎很有前途(albiet相當激烈)。兩者都可以在Drupal 6或7上運行。