Como criar uma tabela durante a instalação do módulo


15

Estou tentando criar um módulo para o Drupal 7 e preciso criar 3 tabelas e preenchê-lo. Mas primeiro eu preciso criá-lo.

No arquivo mymodule.install eu tenho

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;     
}

O que estou fazendo de errado? Toda vez que testo o módulo, desativo -> desinstalar -> Cache de desempenho limpo -> habilitá-lo.


3
Se você tem Drush e devel instalado, você poderia usar drush devel-reinstall mymodulepara reinstalar rapidamente seu módulo
FLY

Respostas:


11

Está faltando a lengthpropriedade da varcharcoluna ('lista'). lengthé necessário para que a CREATE TABLEconsulta falhe.

Nos documentos da API do esquema :

Todos os parâmetros, exceto o 'tipo', são opcionais, exceto que as colunas do tipo 'numérico' devem especificar 'precisão' e 'escala', e as colunas 'varchar' devem especificar 'comprimento'.


4

myodule_schematem um erro de digitação. Um mestá faltando após o y.


Graças à BetaRide, foi um erro de transcrição. Eu dar-lhe um voto, porque você leu o meu post e na verdade eu realmente encontrou um erro de ortografia no nome da função eh eh
Tyler Durden
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.