Hàm sau được chứa trong process_login.install như một phần của mô-đun tùy chỉnh có tên process_login. Mô-đun hoạt động nếu tôi tự tạo bảng cơ sở dữ liệu, nhưng tự nhiên tôi muốn bảng được tạo tự động khi cài đặt.
Bản thân hàm không tạo ra lỗi lược đồ khi cài đặt mô-đun. Nhưng nó cũng không tạo bảng cơ sở dữ liệu process_login_register trong cơ sở dữ liệu MySQL Drupal 7.
Không có lỗi nào khác tôi có thể thấy hoặc các sự cố được báo cáo bởi Báo cáo Trang web.
Tôi đã gỡ bỏ nó hoàn toàn và cài đặt lại nhiều lần. Tôi đã tìm kiếm trên mạng rất nhiều, và đã tham khảo hai cuốn sách tôi có về sự phát triển của Drupal. Tôi không thể thấy bất cứ điều gì sai với chức năng này (được liệt kê dưới đây).
LƯU Ý: Tôi cũng đã thử xác định 'id' là nối tiếp nhưng nhận được kết quả tương tự (nghĩa là không có bảng nào được tạo).
Tôi đã hết ý tưởng. Có ai biết tại sao chức năng này không hoạt động?
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()
. Việc cài đặt một mô-đun chỉ có thể được thực hiện sau khi được gỡ cài đặt (sử dụng tab gỡ cài đặt hoặc phát / cài đặt lại), sau đó tất cả các bảng được tạo bởi mô-đun sẽ bị xóa. Sau đó, khi bạn cài đặt mô-đun, hook_install()
sẽ chạy như bạn mong đợi