So erstellen Sie eine Tabelle während der Modulinstallation


15

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

In der Datei mymodule.install habe ich bekommen

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 -> deinstallieren -> Cache leeren -> aktivieren.


3
Wenn Sie drush und devel installiert haben, können Sie drush devel-reinstall mymoduleIhr Modul schnell neu installieren
FLY

Antworten:


11

Ihnen fehlt die lengthEigenschaft für die varcharSpalte ('Liste'). lengthist erforderlich, damit die CREATE TABLEAbfrage fehlschlägt.

In den Schema-API-Dokumenten :

Alle Parameter außer 'type' sind optional, mit der Ausnahme, dass für 'numeric' -Spalten 'precision' und 'scale' angegeben werden müssen und für 'varchar' -Spalten 'length' angegeben werden muss.


4

myodule_schemahat einen Tippfehler. An mfehlt nach dem y.


Danke BetaRide, es war ein Übertragungsfehler. Ich gebe Ihnen eine Stimme ab, weil Sie meinen Beitrag gelesen haben und ich tatsächlich einen Rechtschreibfehler im Namen der Funktion gefunden habe
Tyler Durden
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.