Наступна функція міститься в process_login.install як частина користувацького модуля під назвою process_login. Модуль працює, якщо я вручну створив таблицю бази даних, але, природно, я хотів би, щоб таблиця, створена автоматично при встановленні.
Сама функція не створює помилки схеми при встановленні модуля. Але він також не створює таблицю бази даних process_login_register в базі даних Drupal 7 MySQL.
Немає інших помилок, які я бачу, або проблем, про які повідомляє Звіт про сайт.
Я її видалив повністю і перевстановлював не раз. Я широко шукав в Інтернеті і консультувався з двома книгами про розвиток 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 / reinstall"), після чого всі таблиці, створені модулем, видаляються. Після встановлення модуля hook_install()
запускається так, як ви очікували