Catégories:
Bonjour,
je souhaite développer un module pour ubercart, mais mon fichier .install pour créer la table dans la base ne fonctionne pas.
Pourriez-vous m’aider à trouver ce qui pose problème.
Je n’ai pas de message d’erreur, mais la table ne se crée pas à l’activation du module.
<?php
// $Id: uc_personnalisation.install,v 1.0Exp $
/<strong>
* @file
* Install hooks for uc_order.module.
*/
/</
strong>
* Implementation of hook_install().
*/
function uc_personnalisation_install() {
drupal_install_schema('uc_personnalisation');
}
/<
strong>
* Implementation of hook_uninstall().
*/
function uc_personnalisation_uninstall() {
drupal_uninstall_schema('uc_personnalisation');
}
/</
strong>
* Implementation of hook_schema().
*/
function uc_personnalisation_schema() {
$schema['uc_order_personnalisation'] = array(
'description' => "Personnalisation des bons d'achats",
'fields' => array(
'personnalisation_id' => array(
'description' => t('The comment ID.'),
'type' => 'serial',
'unsigned' => TRUE,
'not null' => TRUE,
),
'order_id' => array(
'description' => t('The order ID.'),
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
),
'uid' => array(
'description' => t('The user ID who made the comment.'),
'type' => 'int',
'unsigned' => TRUE,
'not null' => TRUE,
'default' => 0,
),
'order_status' => array(
'description' => t('The status the order had when the comment was made.'),
'type' => 'varchar',
'length' => 32,
'not null' => TRUE,
'default' => '',
),
'notified' => array(
'description' => t('Boolean flag; if set, the comment was emailed to the customer.'),
'type' => 'int',
'size' => 'tiny',
'not null' => TRUE,
'default' => 0,
),
'message' => array(
'description' => t('Timestamp of when the comment was created.'),
'type' => 'text',
),
'created' => array(
'type' => 'int',
'not null' => TRUE,
'default' => 0,
),
),
'indexes' => array(
'order_id' => array('order_id'),
),
'primary key' => array('comment_id'),
);
return
$schema;
}
?>Merci d’avance
- Vous devez vous identifier ou créer un compte pour écrire des commentaires

Ton code est bon. Le plus simple à ce stade est de coller une trace (error_log(‘coucou’)) dans chacune de tes procédures pour voir si tu passes dedans. Tu peux aussi vérifier dans la table «system» si le numéro de version de schema pour voir s’il est bien passé dans le .install. Là je pense qu’il doit juste y avoir une faute de frappe quelque part (nom du module ou ce genre de choses).
Ou alors, n’oublie pas que l’activation d’un module ne signifie pas installation si ton module a été déjà activé précédemment (avant que tu fasses le .install). Pour valider il faut que du désactive le module, le desinstalle, puis le re-active.
Yoran - arNuméral
Yoran
1039
J’ai aussi eu des soucis bizarres parce que j’avais fait une erreur dans le code de install : même après l’avoir corrigé ça ne marchait plus. Par contre en désactivant le module, puis en allant dans la table system, en supprimant la ligne de mon module dans la table system, puis en le réactivant, ça remarchait.
http://formation.ideia.fr/formation/drupal-la-carte | http://twitter.com/nyl_auster
nyl auster
838
merci pour vos réponses
Effectivement en supprimant la ligne dans la table système ça fonctionne.
J’avais une erreur sur ma ligne où j’indiquais la primary key.
C’est résolu.
Merci à vous
selinav
1242