Afficher la pageAnciennes révisionsLiens de retourHaut de page Cette page est en lecture seule. Vous pouvez afficher le texte source, mais ne pourrez pas le modifier. Contactez votre administrateur si vous pensez qu’il s’agit d’une erreur. ==== Base de données ==== Dans nos tests, nous avons utilisé MySQL comme SGBD. Les bases de données pour Framadate sont générées "en différentiel" : à partir de la base de données d'origine, on va exécuter plusieurs scripts PHP qui vont la modifier pour atteindre sa forme finale, il n'y a pas un unique script générant directement la base finale. Si vous souhaitez modifier la base de données, il vous faut implémenter une classe définie comme template située dans <dossier framadate>/app/classes/Framadate/Migration/migration.php **Pour pouvoir tester pour la première fois votre serveur (ie à chaque lancement du conteneur pour docker), il vous faudra lancer ces scripts.** Pour cela, il faut ouvrir la page <domaine framadate>/admin/migration.php (accessible depuis <domaine framadate>/admin). Pour atteindre cette page, on vous demandera normalement un user/mdp. Celui-ci est décrit dans <dossier framadate>/app/inc/config.php (fichier modifié par le entrypoint.sh lors du déploiement docker, avec les paramètres précisés dans le docker-compose.yml) \\ Afin d'apporter une modification à la base de données, il faut créer un fichier de migration (en s'inspirant de ceux déjà présents) et ajouter ce fichier à la liste des migrations à réaliser dans le fichier framadate/admin/migration.php. ==== Comment ajouter un script pour modifier la base de données ==== dans le dossier framadate/app/classes/Framadate/Migration, copié-collé un fichier de migration en l'adaptant à vos besoins. dans le fichier /var/www/framadate/admin/migration.php : - ajouter une ligne "use Framadate\Migration\VOTRENOMDECLASSE;" - ajouter une ligne "new ...(), new VOTRENOMDECLASSE()" à la fin du tableau $migration puis lancer la migration en ouvrant la page PHP <domaine framadate>/admin/migration.php \\ le fichier va lancer successivement les scripts, et stocker dans sa base de données les succès, les échecs et ceux qui n'ont pas été lancés car appartenant déjà à la liste des scripts passés en succès ==== exemple de code ==== <code>class VOTRENOMDECLASSE implements Migration { function __construct() { } function description() { return 'message décrivant la modification'; } function preCondition(\PDO $pdo) { return true; } function execute(\PDO $pdo) { $this->VOTREFONCTION($pdo); return true; } private function VOTREFONCTION(\PDO $pdo) { //votre code SQL $pdo->exec(' ALTER TABLE `' . Utils::table('NOMTABLE') . '` ADD `NOM COLONNE` LETYPEPOURLACOLONNE;'); } }</code> txs/contrib/framadate_a17/base_de_donnees.txtde 127.0.0.1