আপনি যখন একটি নতুন টেবিল তৈরি করেন hook_schema()
, সেই টেবিলটিও কি hook_update_N()
পাশাপাশি যুক্ত করা উচিত ? বা ডাটাবেইড-আপডেটগুলি স্বয়ংক্রিয়ভাবে টেবিলগুলি যুক্ত করার জন্য কোনও কৌশল, বা আমি কিছু মিস করেছি?
Hook_update_N () এর ডকুমেন্টেশনhook_schema()
নতুন টেবিল প্রবর্তন সম্পর্কে কিছুই ব্যাখ্যা করে না, যেখানে ডকুমেন্টেশন বলেছেন:
এই হুক দ্বারা ঘোষিত টেবিলগুলি মডিউলটি প্রথম সক্ষম হয়ে গেলে স্বয়ংক্রিয়ভাবে তৈরি হবে এবং মডিউলটি আনইনস্টল করা অবস্থায় সরিয়ে দেওয়া হবে।
(হাইলাইটটি আমার)
এবং যদি তা হয় তবে কীভাবে সর্বোত্তমভাবে hook_update_N () এবং hook_schema () উভয় ক্ষেত্রেই নতুন টেবিলের জন্য স্কিমা সংজ্ঞাগুলি নকল করা যায়। কেবল নিম্নলিখিত হিসাবে স্কিমার উল্লেখ করা:
function hook_update_N(&$sandbox) {
$schema = hook_schema();
$name = "foo";
$table = $schema["foo"];
db_create_table($name, $table);
}
কাজ মনে হচ্ছে, তবে আবার টেবিল পরিবর্তন করার পরে, যদি কোনও ব্যবহারকারী আপডেটগুলি চালায় এবং দুই বা ততোধিক হুক_আপডেট_এন () চালায় তবে ব্যর্থ হবে। সর্বোপরি: প্রথম হুক_আপডেট_ এন ইতিমধ্যে সঠিক ডাটাবেস ইনস্টল করবে এবং দ্বিতীয় হুক_আপডেট_ এম () ইতিমধ্যে আপ-টু-ডেট থাকা কলামগুলি / পরিবর্তন / পরিবর্তন করার চেষ্টা করবে।
এটার সাথে তুমি কিভাবে চুক্তি করলে?