Submitted by marwa on
j'ai cree un module matiere vide mais dans le fichier.installe j'ai decrit mes table necessaire afin qu'il seront cree dans la base du drupal. malheureusement lors de l'activation du ce module aucun de ses tables est inseres ds la base..
que ce je doit faire SVP.......?
voici le fichier.install
<?php
// $Id: matiere.install,v 1.7.2.1 Exp $
/** Implementation de hook_install().
*/
function matiere_install() {
// Creation de la table grâce à l'API schema.
drupal_install_schema('matiere');
}
/<strong>
* Implementation de hook_uninstall().
*/
function matiere_uninstall() {
// Supression de la table lors de la désinstallation du module.
drupal_uninstall_schema('matiere');
// Suppression de nos variables de la table variables.
//variable_del('matiere_node_types');
}
/</strong>
* Implementation of hook_schema().
*/
function matiere_schema() {
$schema['matiere'] = array(
'fields' => array(
'mat_nom_chapitre' => array(
'type'=> 'varchar',
'unsigned'=> TRUE,
'not null'=> TRUE,
'length' => 254,
),
'nom_matiere' => array(
'type'=> 'varchar',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
'length' => 254,
),
'nom_chapitre' => array(
'type' => 'varchar',
'length' => 254,
'not null' => TRUE,
'default' => 0,
),
'mat_mat_nom_chapitre' => array(
'type' => 'text',
'not null' => FALSE,
'length' => 254,
),
'cha_nom_matiere' => array(
'type' => 'varchar',
'not null' => TRUE,
'default' => 0,
),
'nbr_section ' => array(
'type' => 'int',
'not null' => TRUE,
'default' => 0,
),
'nbr_activite ' => array(
'type' => 'int',
'not null' => TRUE,
'default' => 0,
),
' nbr_page ' => array(
'type' => 'int',
'not null' => TRUE,
'default' => 0,
),
),
'primary key' => array('mat_nom_chapitre'),
);
$schema['departement'] = array(
'fields' => array(
'num_departement ' => array(
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
),
' num_inscription' => array(
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
),
'localisation ' => array(
'type' => 'varchar',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
'length' => 254,
),
'numsalle' => array(
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
),
),
'primary key' => array('num_departement '),
);
return $schema;
}
?>
Bonjour, je suppose que le
Permalien Soumis par jeanfi le 20 Avril, 2011 - 21:13
Bonjour,
je suppose que le fichier.install s'appelle matiere.install.
Ensuite Drupal est parfois capricieux, il faut donc désactiver ton module, déplacer physiquement le dossier du module (parfois le laisser peut laisser penser qu'aucun changement n'a été effectué), vider les caches et réinstaller le module.
Je n'ai pas regardé si les tables sont correctes...
Salut, Je sais pas si c’est
Permalien Soumis par benfarhat le 24 Avril, 2011 - 13:19
Salut,
Je sais pas si c'est la cause de ton problème mais il y a quelques détails que j'ai cru bon de relever:
1 pense à enlever le ?> à la fin de ton fichier.install
2 au niveau de la deuxième définition de clé primaire le petit espace de la fin après le num_departement
'primary key' => array('num_departement '),
3 même chose lors de la définition de tes champs il y a un espace supplémentaire:
'nbr_section '
'nbr_activite '
' nbr_page '
'num_departement '
'localisation '
4 lors de la définition de tes champs je ne sais pas si pour un varchar tu peut mettre comme valeur par defaut un entier
'nom_matiere' => array(
'type'=> 'varchar',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
'length' => 254,
),
donc ca serait peut être mieux de mettre ceci
....
'not null' => TRUE,
'default' => '',
....
même chose pour:
'nom_chapitre'
'cha_nom_matiere'
'localisation '
5 dans ton post avant le mot implementation il y a aussi des STRONGs ??? est lors de l'insertion du post (commentaire) ou dans le code source de matiere.install
6 vérifie aussi que dans ton fichier matiere.info il y a bien la ligne
files[] = matiere.install
voili voilou j'espère que ca t'aidera :)
(et surtout que j'me suis pas trompé)