Cómo crear una tabla durante la instalación del módulo

14

Estoy tratando de crear un módulo para Drupal 7 y necesito crear 3 tablas y llenarlo. Pero primero necesito crearlo.

En el archivo mymodule.install tengo

function mymodule_install() {

}

function mymodule_uninstall() {

}


function myodule_schema() {
  $schema['mymodule_table'] = array(
    'description' => t('First table'),
    'fields' => array(
      'id' => array(
        'description' => t('My unique identifier'),
        'type' => 'int',
        'unsigned' => true,
        'not null' => true,
      ),
      'list' => array(
        'description' => t('list'),
        'type' => 'varchar',
        'not null' => true,
      ),
    ),
    'primary key' => array('id'),
  );
  return $schema;     
}

¿Qué estoy haciendo mal? Cada vez que pruebo el módulo, lo desactivo -> desinstalar -> Desempeño borrar caché -> activarlo.

Tyler Durden
fuente
3
Si tiene instalado drush and devel, puede usarlo drush devel-reinstall mymodulepara reinstalar rápidamente su módulo
VUELE

Respuestas:

11

Te falta la lengthpropiedad de la varcharcolumna ('lista'). lengthes obligatorio para que la CREATE TABLEconsulta falle.

De los documentos de la API de Schema :

Todos los parámetros, aparte de 'tipo', son opcionales, excepto que las columnas de tipo 'numérico' deben especificar 'precisión' y 'escala', y las columnas 'varchar' deben especificar 'longitud'.

Clive
fuente
4

myodule_schematiene un error tipográfico Una mfalta después de la y.

BetaRide
fuente
Gracias BetaRide, fue un error de transcripción. Le doy un voto porque ha leído mi publicación y, de hecho, realmente encontré un error de ortografía en el nombre de la función eh eh
Tyler Durden