Следующая функция содержится в process_login.install как часть пользовательского модуля с именем process_login. Модуль работает, если я вручную создал таблицу базы данных, но, естественно, я хотел бы, чтобы таблица создавалась автоматически при установке.
Сама функция не генерирует ошибку схемы при установке модуля. Но он также не создает таблицу базы данных process_login_register в базе данных MySQL Drupal 7.
Других ошибок, которые я вижу, или проблем, о которых сообщает Report Site, нет.
Я удалил это полностью и переустановил много раз. Я много искал в Интернете и ознакомился с двумя моими книгами по разработке 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()
. Установка модуля может быть выполнена только после его удаления (с помощью вкладки удаления или разработки / переустановки), после чего все таблицы, созданные модулем, будут удалены. Когда вы устанавливаете модуль, hook_install()
он запускается так, как вы ожидаете