Fungsi berikut terkandung dalam process_login.install sebagai bagian dari modul khusus yang disebut process_login. Modul ini berfungsi jika saya secara manual membuat tabel database, tetapi secara alami saya ingin tabel dibuat secara otomatis saat instalasi.
Fungsi itu sendiri tidak menghasilkan kesalahan skema saat memasang modul. Tetapi tidak juga membuat tabel database process_login_register di database MySQL Drupal 7.
Tidak ada kesalahan lain yang bisa saya lihat, atau masalah yang dilaporkan oleh Laporan Situs.
Saya telah menghapusnya sepenuhnya dan menginstal ulang beberapa kali. Saya telah mencari web secara ekstensif, dan berkonsultasi dengan dua buku yang saya miliki tentang pengembangan Drupal. Saya tidak dapat melihat ada yang salah dengan fungsi ini (tercantum di bawah).
CATATAN: Saya juga mencoba mendefinisikan 'id' sebagai serial tetapi mendapatkan hasil yang sama (yaitu tidak ada tabel yang dibuat).
Saya sudah kehabisan ide. Adakah yang tahu mengapa fungsi ini tidak berfungsi?
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()
. Menginstal modul hanya dapat dilakukan setelah itu dihapus (menggunakan tab uninstall atau devel / instal ulang), setelah itu semua tabel yang dibuat oleh modul dihapus. Ketika Anda menginstal modul, hook_install()
jalankan seperti yang Anda harapkan