2011-03-25 13 views
5

के लिए तालिका ड्रॉप करने का उचित तरीका hook_update_N का उपयोग कर तालिका ड्रॉप करने का उचित तरीका क्या है? मुझे इस पर दस्तावेज़ नहीं मिल रहे हैं। अगर मैं update_sql ($ sql) चलाता हूं; मेरे हुक में - एसक्यूएल एक ड्रॉप स्टेटमेंट है - यह एक विफलता की रिपोर्ट करता है, भले ही डीबी की जांच हो, मैं देख सकता हूं कि तालिका गिरा दी गई थी।Drupal: मॉड्यूल अद्यतन

उत्तर

4

आपको db_drop_table() (या ड्रूपल 6 version here) का उपयोग करने में सक्षम होना चाहिए।

+0

अजीब में कर सकते हैं। मैं देख रहा हूं कि यदि मेरे पास दो अपडेट हैं, तो कहें: mymodule_update_6130 और mymodule_6140 और आप पहले (6130) चलाते हैं, ऐसा लगता है कि यह दूसरा (6140) भी चलाता है। यही कारण है कि मुझे डीबी त्रुटि मिल रही थी, क्योंकि तालिका पहले ही अपडेट से पहले ही हटा दी गई थी। क्या यह हो सकता है? – Aaron

2

आप hook_update_N

/** 
* Drop 'my_table' table. 
*/ 
function MYMODULE_update_7001() { 
    if (db_table_exists('my_table')) { 
    db_drop_table('my_table'); 
    } 
} 
+1

आपके पास एक टाइपो है। यह संभवतः अगर (nb_table_exists ...) अस्वीकरण ऑपरेटर के बिना होना चाहिए :) –

+0

धन्यवाद। तय! – milkovsky

संबंधित मुद्दे