Posted by rommelxcastro on August 9, 2012 at 3:50pm
hola señores y señoras, tengo un problema con el hook_schema(), estoy creando un modulo para un sitio y necesito crear una tablar para guardar los datos, al activar el modulo no se porque pero no se esta creando la tabla, aqui les dejo el codigo:
<?php
function mymodule_install() {
drupal_install_schema('mymodule');
}
function mymodule_uninstall() {
drupal_uninstall_schema('mymodule');
}
function mymodule_schema() {
$schema['mymodule'] = array(
'fields' => array(
'rid' => array(
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0
),
'nid' => array(
'type' => 'int',
'not null' => TRUE
),
'uid' => array(
'type' => 'int',
'not null' => TRUE
),
'added' => array(
'type' => 'datetime',
'not null' => TRUE
)
),
'indexes' => array(
'nid' => array('nid'),
'uid' => array('uid'),
),
'primary key' => array('rid')
);
return $schema;
}
Comments
Archivo
Eso lo tienes en el archivo .install ?
si señor!
si señor!
STRAIGHT EDGE // WEB DEVELOPER
quiero aclarar que estoy
quiero aclarar que estoy usando Drupal 6
STRAIGHT EDGE // WEB DEVELOPER
Naming conventions
Rommel,
Imagino que quitaste toda la documentación solo con fines ilustrativos, pero recordá que cada una de esas funciones tiene que ir documentada.
Recordá que las funciones se tienen que llamar igual que el modulo, así que si tu modulo se llama rommel, tu codigo estará en rommel.module y tu install file debe llamarse rommel.install. Tus funciones serán rommel_install, rommel_uninstall y rommel_schema. Tus tablas pueden llamarse como quieras, les das el nombre en el índice del array $schema, ejemplo $schema['rommel'] $schema['castro'], no tiene precisamente que llamarse igual que tu módulo.
Por último tu código luce bien y funciona, aunque imagino que el rid lo querías autoincremental, de ser ese el caso podés cambiar el type a 'type' => 'serial',
http://api.drupal.org/api/drupal/developer%21hooks%21install.php/functio...
Best regards,
Rob Montero
Zend Certified Senior Drupal Engineer
Achieve Internet
lo tenia serial, pero lo
lo tenia serial, pero lo cambie a int a ver si acaso funciona, lo de la nomeclatura todo bien.
voy a verificar si es algun problema de acquia o algo por el estilo, que es lo unico que se me ocurre en este momento
saludos y gracias por su ayuda
STRAIGHT EDGE // WEB DEVELOPER
Errores?
Hola Rommel,
Te da algún error en los logs cuando lo corres?
Nestor Mata
http://nestor.profesional.co.cr/es