problema con hook_schema()

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
rommelxcastro's picture

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

alemadlei's picture

Eso lo tienes en el archivo .install ?

si señor!

rommelxcastro's picture

si señor!

STRAIGHT EDGE // WEB DEVELOPER

quiero aclarar que estoy

rommelxcastro's picture

quiero aclarar que estoy usando Drupal 6

STRAIGHT EDGE // WEB DEVELOPER

Naming conventions

rmontero's picture

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

rommelxcastro's picture

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?

nestor.mata's picture

Hola Rommel,

Te da algún error en los logs cuando lo corres?