Création tables à l'activation d'un module perso

Bonjour,

J’essais de développer un petit module pour voir avant de me lancer dans un modules plus conséquent.

En gros j’aimerais ajouter le ‹ parcours professionnel › d’un adhérent…

J’ai réussi à ajouter un onglet en suivant le début de ce tuto.

Maintenant, je rajoute une couche avec des fichiers sql pour créer la table dont j’ai besoin. Pour le moment, je test avec un seul fichier : « dolibarr320beta\htdocs\adherentsonglets\sql\llx_adherentsonglets.sql » ( Ne faite pas trop attention au nom, pour le moment, je suis dans un bac à sable ! )

Voici le contenu de ce fichier :

create table llx_adherentsonglets
(
  rowid            integer AUTO_INCREMENT PRIMARY KEY,
  societe          varchar(50),
  fonction              varchar(50),
  note             text,
  datedebut        datetime,  -\- date de debut
  datefin            datetime  -\- date de fin
)ENGINE=innodb;

Et ben, ça marche pas !
J’ai testé la requête dans phpmyadmin, elle créait bien la table… Ensuite, je l’efface et je réactive le module et là, pas de création de la table…

Si j’ai bien compris, il n’y a pas d’autres actions ou fichiers qui entrent en jeu pour la création de la table tant désirée…

Est ce que quelqu’un pourrait m’expliquer la démarche comme çi j’avais 6 ans… ou 5 ans pout être vraiment sur !

Merci d’avance !!!

Petite précision à ajouter au wiki ! Dans le descripteur, il faut indiquer le chemin vers le dossier des requêtes sql. Dans mon cas, dans le fichier dolibarr320beta\htdocs\adherentsonglets\core\modules\modAdherentsOnglets.class.php à partir de la ligne 284 (tout à la fin en fait), j’ai mis le code :

function load_tables() { return $this-\>_load_tables('/adherentsonglets/sql/'); }
adherentsonglets => nom de mon dossier contenant mon module et sql => nom du dossier contenant mes requêtes sql.

Et voili, voilô ! Ma table se créée à l’activation de mon module !

J’aimerai savoir comment paramétrer le fichier .sql pour tenir compte du MAIN_DB_PREFIX

CREATE TABLE (MAIN_DB_PREFIX)ma_table
(
rowid INTEGER AUTO_INCREMENT PRIMARY KEY,

)ENGINE=InnoDB AUTO_INCREMENT=501 DEFAULT CHARSET=utf8 ;

j’ai trouvé, merci.

Bonjour,

Comment avez-vous utilisé le MAIN_DB_PREFIX pour la création des table dans les fichiers sql ?

Merci par avance.

c’est tout simple

si le MAIN_DB_PREFIX est par exemple « myDolibarrDb_ »

il faut faire les script sql avec llx_

si l’on veut créer la table myDolibarrDb_myNewTable

create table llx_myNewTable …

les occurrences de « llx_ » seront remplacée par « myDolibarrDb_ »

C.Q.F.D. (ce qu’il faut documenter)