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.


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'.


4

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


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.