it-swarm.com.de

So erstellen Sie eine Tabelle während der Modulinstallation

Ich versuche ein Modul für Drupal 7 und ich muss 3 Tabellen erstellen und es füllen. Aber zuerst muss ich es erstellen.

In der Datei mymodule.install habe ich

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

Was mache ich falsch? Jedes Mal, wenn ich das Modul teste, deaktiviere ich es -> deinstalliere -> Cache zum Löschen der Leistung -> aktiviere es.

14
Tyler Durden

Ihnen fehlt die Eigenschaft length für die Spalte varchar ('Liste'). length ist erforderlich, damit CREATE TABLE Abfrage schlägt fehl.

Aus den Schema API-Dokumenten :

Alle Parameter außer 'Typ' sind optional, außer dass die 'numerischen' Spalten des Typs 'Genauigkeit' und 'Skalierung' und die 'varchar'-Spalten' Länge 'angeben müssen.

11
Clive

myodule_schema hat einen Tippfehler. Nach dem m fehlt ein y.

4
BetaRide