A função a seguir está contida em process_login.install como parte de um módulo customizado chamado process_login. O módulo funciona se eu criei manualmente a tabela do banco de dados, mas naturalmente gostaria que a tabela fosse criada automaticamente na instalação.
A função em si não gera um erro de esquema na instalação do módulo. Mas também não cria a tabela process_login_register do banco de dados no banco de dados MySQL do Drupal 7.
Não vejo outros erros ou problemas relatados pelo Site Report.
Eu o removi completamente e reinstalei várias vezes. Eu pesquisei bastante na web e consultei dois livros que tenho sobre o desenvolvimento do Drupal. Não consigo ver nada de errado com esta função (listada abaixo).
NOTA: Também tentei definir 'id' como serial, mas obtive o mesmo resultado (ou seja, nenhuma tabela criada).
Eu fiquei sem idéias. Alguém sabe por que essa função não está funcionando?
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()
. A instalação de um módulo só pode ser feita após a desinstalação (usando a guia de desinstalação ou o desenvolvimento / reinstalação), após o qual todas as tabelas criadas pelo módulo são excluídas. Quando você instala o módulo, ele hook_install()
é executado conforme o esperado