ฟังก์ชันต่อไปนี้มีอยู่ใน process_login.install เป็นส่วนหนึ่งของโมดูลที่กำหนดเองชื่อ process_login โมดูลใช้งานได้หากฉันสร้างตารางฐานข้อมูลด้วยตนเอง แต่โดยปกติฉันต้องการให้สร้างตารางโดยอัตโนมัติเมื่อติดตั้ง
ฟังก์ชั่นนั้นไม่ได้สร้างข้อผิดพลาดสกีมาในการติดตั้งโมดูล แต่ไม่สร้างตารางฐานข้อมูล process_login_register ในฐานข้อมูล MySQL Drupal 7
ไม่มีข้อผิดพลาดอื่น ๆ ที่ฉันเห็นหรือรายงานปัญหาจากรายงานเว็บไซต์
ฉันได้ลบมันออกอย่างสมบูรณ์และติดตั้งใหม่หลายครั้ง ฉันค้นหาเว็บอย่างกว้างขวางและอ่านหนังสือสองเล่มที่ฉันมีเกี่ยวกับการพัฒนาของ Drupal ฉันไม่เห็นอะไรผิดปกติกับฟังก์ชั่นนี้ (ด้านล่าง)
หมายเหตุ: ฉันได้ลองกำหนด 'id' เป็นอนุกรม แต่ได้ผลลัพธ์เดียวกัน (เช่นไม่มีการสร้างตาราง)
ฉันหมดความคิดแล้ว ไม่มีใครรู้ว่าทำไมฟังก์ชั่นนี้ใช้งานไม่ได้?
function process_login_schema(){
$schema['process_login_register'] = array(
'description' => 'Register a specific computer with the system.',
'fields' => array(
'id' => array(
'description' => 'Primary identifier.',
'type' => 'int',
'unsigned' => TRUE,
'size' => 'normal',
'not null' => TRUE,
'default' => 0,
),
'ip' => array(
'description' => "The user's IP address at registration.",
'type' => 'varchar',
'length' => 32,
'not null' => TRUE,
'default' => '',
),
'user_agent' => array(
'description' => "The user's browser user agent string at registration.",
'type' => 'varchar',
'length' => 255,
'not null' => TRUE,
'default' => '',
),
),
'primary key' => array('id'),
);
return $schema;
}
hook_enable()
เท่านั้น การติดตั้งโมดูลสามารถทำได้หลังจากถอนการติดตั้งแล้ว (ใช้แท็บถอนการติดตั้งหรือ devel / ติดตั้งใหม่) หลังจากนั้นตารางทั้งหมดที่สร้างขึ้นโดยโมดูลจะถูกลบ เมื่อคุณติดตั้งโมดูลแล้วhook_install()
จะทำงานตามที่คุณคาดหวัง