[Resolu]Fichier .install pour création module

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

#

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

#

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.

#

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

Syndiquer le contenu