La siguiente función está contenida en process_login.install como parte de un módulo personalizado llamado process_login. El módulo funciona si creé manualmente la tabla de la base de datos, pero naturalmente me gustaría que la tabla se creara automáticamente en la instalación.
La función en sí no genera un error de esquema al instalar el módulo. Pero tampoco crea la tabla de base de datos process_login_register en la base de datos Drupal 7 MySQL.
No hay otros errores que pueda ver o problemas informados por Site Report.
Lo eliminé por completo y lo reinstalé varias veces. He buscado mucho en la web y consultado dos libros que tengo sobre el desarrollo de Drupal. No puedo ver nada malo con esta función (se enumera a continuación).
NOTA: También he intentado definir 'id' como serial pero obtengo el mismo resultado (es decir, no se ha creado ninguna tabla).
Me he quedado sin ideas. ¿Alguien sabe por qué esta función no funciona?
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()
. La instalación de un módulo solo se puede hacer después de que se haya desinstalado (usando la pestaña de desinstalación o devel / reinstalar), después de lo cual se eliminan todas las tablas creadas por el módulo. Cuando instala el módulo, hook_install()
se ejecuta como era de esperar