2011-03-11 41 views
0

Drupal節點表上的nid字段從254,107跳到500,220,117。這可能導致什麼?我還沒有搞亂Auto_increment字段。原因爲Drupal node.Auto_increment字段跳到一億(從五十萬)?

我在drupal_write_record中看到很少的餘地,node_save函數調用可能導致此nid跳轉的任何種類的人爲錯誤,node_save接受作爲參數的是節點對象。

難以建立的節點對象會導致Auto_increment字段跳轉嗎?即對於某種奇怪的錯誤,代碼在將其傳遞給node_save之前使用其他內容切換nid字段?如果這是真的,這個bug將在node_save之前的代碼,但它也可能是一個rougue hook_invoke_nodeapi內,因爲node_save()的函數開始調用此片段:

// Let modules modify the node before it is saved to the database. 
node_invoke_nodeapi($node, 'presave'); 

你將如何去設置一個測試來檢測這個?

我可能會在node_save()中設置一個奇特的條件斷點(或其中的一些),特別是最後一行db_query()。在db_query()中,斷點很可能包含一個正則表達式。然後,我可以設置某種自動化測試,將各種節點類型保存到數據庫中(考慮devel模塊)並查看是否出現問題。如果我找到任何東西,我會回答自己的問題,除非其他人在過去有過類似的經歷並且先回答。

+0

寫得不好的模塊?很難用這麼少的信息來說。 – drudge 2011-03-11 18:56:24

回答

0

是的,我們不知道沒有更多的信息。 Drupal使用什麼順序取決於您使用的版本。有關更多信息,請參閱this

+0

看着它,謝謝。 – 2011-03-11 22:01:54

+0

我正在使用Drupal 6。 – 2011-03-14 04:33:26