Come creare una tabella durante l'installazione del modulo


14

Sto cercando di creare un modulo per Drupal 7 e ho bisogno di creare 3 tabelle e popolarlo. Ma prima devo crearlo.

Nel file mymodule.install ho

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

Che cosa sto facendo di sbagliato? Ogni volta che collaudo il modulo, lo disabilito -> disinstalla -> Performance clear cache -> lo abilito.


3
Se hai installato drush e devel puoi usare drush devel-reinstall mymoduleper reinstallare rapidamente il tuo modulo
FLY

Risposte:


11

Manca la lengthproprietà per la varcharcolonna ('elenco'). lengthè necessario, quindi la CREATE TABLEquery non riuscirà.

Dai documenti dell'API dello schema :

Tutti i parametri oltre a "tipo" sono facoltativi tranne per il fatto che il tipo di colonne "numeriche" deve specificare "precisione" e "scala", mentre le colonne "varchar" devono specificare "lunghezza".


4

myodule_schemaha un refuso. Un mmanca dopo la y.


Grazie BetaRide, è stato un errore di trascrizione. Ti do un voto perché hai letto il mio post e in realtà ho davvero trovato un errore di ortografia sul nome della funzione eh eh
Tyler Durden,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.