La seguente funzione è contenuta in process_login.install come parte di un modulo personalizzato chiamato process_login. Il modulo funziona se ho creato manualmente la tabella del database, ma naturalmente vorrei che la tabella fosse creata automaticamente al momento dell'installazione.
La stessa funzione non genera un errore di schema durante l'installazione del modulo. Ma non crea nemmeno la tabella del database process_login_register nel database MySQL di Drupal 7.
Non ci sono altri errori che posso vedere o problemi segnalati da Site Report.
L'ho rimosso completamente e reinstallato numerose volte. Ho cercato ampiamente sul web e ho consultato due libri che ho sullo sviluppo di Drupal. Non riesco a vedere nulla di sbagliato in questa funzione (elencata di seguito).
NOTA: ho anche provato a definire 'id' come seriale ma ottengo lo stesso risultato (ovvero nessuna tabella creata).
Ho finito le idee. Qualcuno sa perché questa funzione non funziona?
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()
. L'installazione di un modulo può essere eseguita solo dopo che è stato disinstallato (utilizzando la scheda di disinstallazione o devel / reinstall), dopo di che tutte le tabelle create dal modulo vengono eliminate. Quando installi quindi il modulo, hook_install()
viene eseguito come previsto