J'essaie de créer un module pour Drupal 7 et je dois créer 3 tables et le remplir. Mais d'abord, je dois le créer.
Dans le fichier mymodule.install j'ai
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;
}
Qu'est-ce que je fais mal? Chaque fois que je teste le module, je le désactive -> désinstaller -> Effacer le cache des performances -> l'activer.
Il vous manque la propriété length
pour la colonne varchar
('liste'). length
est requis, donc le CREATE TABLE
la requête échouera.
À partir des documents API de schéma :
Tous les paramètres à l'exception de "type" sont facultatifs, sauf que les colonnes de type "numérique" doivent spécifier "précision" et "échelle", et les colonnes "varchar" doivent spécifier "longueur".
myodule_schema
a une faute de frappe. Un m
est manquant après le y
.