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.

Tyler Durden
quelle
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.

Clive
quelle
4

myodule_schemahat einen Tippfehler. An mfehlt nach dem y.

BetaRide
quelle
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