Voir les traceurs | Evolutions | Exporter au format CSV

Date :
23/05/2013 17:09
Priorité :
3
État :
Closed
Proposé par :
Florent MICHON (fmichon)
Confié à :
Florent MICHON (fmichon)
Version cible :
none
Version concernée :
none
Résumé :
Mise à plat la gestion des fichiers sql du dossier data

Description détaillée
Il est nécessaire de mettre à plat la gestion des fichiers sql du dossier data :

- définir une liste de fichiers sql avec une convention de nommage
- formaliser le contenu de ces fichiers
- formaliser la manière dont ils sont générés et quand ils le sont
- définir l'ordre dans lequel ces fichiers doivent être appliqué
- faire un fichier unique qui installe la totalité des fichiers pour déployer une démonstration ou un environnement de développement ou un environnement de tests

Ces éléments doivent être ajouté dans la documentation pour que dans toutes les applications suivent la même logique.

Évidemment ce ticket appelle à toute question/réponse/remarque pour compléter un de ces points.
Message  ↓
Date : 13/04/2016 18:09
Expéditeur : Florent MICHON

Déplacé de Tracker vers Evolutions

Date : 20/09/2013 16:43
Expéditeur : Florent MICHON

J'ai un problème avec cette modification. Le nommage de la base de données par défaut en openmairie et non avec le nom de l'application oblige la modification de la logique des scripts d'initialisation des tests ainsi que du script de génération des fichiers init*.sql.

Peut-on décaler ce point à la version 4.5.0 ou ce point est-il nécessaire dans la version 4.4.0 ?

Date : 08/07/2013 08:39
Expéditeur : francois raynaud

Le comité technique du 4 juillet 2013 est d accord pour suivre les préconisations explicitées dans la documentation.
Par contre il est souhaité que le nom de base soit "openMairie" et que le schéma soit le nom de l application.

Date : 03/07/2013 19:15
Expéditeur : Florent MICHON

Réponse au dernier commentaire : "Est ce que les changements de version du generateur sont à part ou dans les fichiers ver.xxx.sql de l application ?"

Par exemple, lors de la mise à niveau de l'applicatif "opencourrier" de la version 6.1.0 vers la version 6.2.0. En supposant que la version du framework de la version 6.1.0 soit la version 4.1.0 et que la version 6.2.0 est mise à niveau sur la version 4.4.0 alors le fichier v6.2.0.sql d'opencourrier devra contenir les fichiers sql v4.2.0.sql v4.3.0.sql et v4.4.0.sql du framework ainsi que les modifications spécifiques à l'applicatif.

Date : 03/07/2013 10:30
Expéditeur : francois raynaud

Est ce que les changements de version du generateur sont à part ou dans les fichiers ver.xxx.sql de l application ?

Date : 23/05/2013 20:14
Expéditeur : Florent MICHON

Ci joint la documentation rédigée dans le guide du développeur sur la question. Les modifications ont été effectuées dans le trunk du framework à la révision 2302 et 2304.


2. Initialisation de la base de données
2.1. Description du dossier data/pgsql/

Il est nécessaire de positionner l’entête de fichier suivant pour chacun des fichiers sql de ce dossier :

--------------------------------------------------------------------------------
-- Description succinte de l'utilité du fichier
--
-- Informations nécessaires à la génération ou à la composition du fichier
--
-- @package <APPLICATIF>
-- @version SVN : $Id$
--------------------------------------------------------------------------------

2.1.1. Description de tous les fichiers init*.sql

Il s’avère nécessaire de mettre dans l’entête des fichiers init*.sql la commande ou les instructions qui ont permis de générer ou de composer le fichier en question.
2.1.1.1. Le fichier init.sql

Ce fichier contient les instructions de base du framework. Il permet de créer les tables et les séquences du framework (celles qui commencent par om_*). Il est généré grâce à la commande :

pg_dump -s -O -n <SCHEMA> -T <SCHEMA>.om_* <DATABASE>

Dans les applicatifs, ce fichier est sensé être directement copié depuis le framework.
2.1.1.2. Les fichiers init_metier*.sql

Ces fichiers contiennent les instructions de base de l’applicatif.

Le fichier init_metier.sql permet de modifier (si besoin) le modèle de données du framework et de créer les tables et les séquences de l’applicatif (celles qui ne commencent par om_*). Il est généré grâce à la commande :

pg_dump -s -O -n <SCHEMA> -t <SCHEMA>.om_* <DATABASE>

Dans le framework, ce fichier est vide.

Le fichier init_metier_sig.sql permet de modifier le modèle de données créé précédemment pour y ajouter des champs de type geom pour la gestion du SIG.

Le fichier init_metier_vue.sql permet de modifier le modèle de données créé précédemment pour y remplacer une table par une vue vers la table d’un autre schéma ou d’une autre base de données.

2.1.1.3. Les fichiers init_metier_parametrage*.sql

Ces fichiers contiennent l’initialisation du paramétrage c’est-à-dire les données nécessaires à l’utilisation de l’application. Ils sont générés généralement grâce à la commande :

pg_dump -a -t <SCHEMA>.<TABLE1> -t <SCHEMA>.<TABLE2> ... <DATABASE>

Le fichier init_metier_parametrage.sql permet d’initialiser par exemple la ou les collectivités de base ainsi que les profils et l’utilisateur admin. Dans certains applicatifs simple, ce fichier peut être unique et tout le paramétrage contenu dans ce dernier.
Le fichier init_metier_parametrage_permissions.sql permet d’initialiser les permissions de l’applicatif. Cette initialisation se trouve dans un fichier séparé pour appréhender plus facilement le paramétrage des permissions et éventuellement la mise à jour de ce paramétrage.
Le fichier init_metier_parametrage_editions.sql permet d’initialiser les editions de base générique de l’aplicatif. Cette initialisation se trouve dans un fichier séparé pour appréhender plus facilement le paramétrage des éditions et éventuellement la mise à jour de ce paramétrage.
Le fichier init_metier_parametrage_*.sql peut permettre de découper encore l’initialisation pour appréhender plus facilement le paramétrage et éventuellement la mise à jour de ce paramétrage.

2.1.1.4. Le fichier init_data.sql

Ce fichier contient l’initialisation d’un jeu de données à destination de trois environnements distincts :

l’environnement de développement,
l’environnement de démonstration,
l’environnement de tests.

2.1.2. Description des fichiers vX.X.X.sql ou ver_X.X.X.sql

Ces fichiers permettent de mettre à jour les applicatifs d’une version vers la version supérieure. Le X.X.X correspond au numéro de version vers lequel la mise à jour se fait et depuis la version juste précédente.

Lorsque le framework ou l’applicatif est en développement, ce fichier peut être suffixé par -dev et indique qu’il n’a pas encore été intégré aux différents fichiers init*.sql. Juste avant une nouvelle version du framework, les fichiers init*.sql doivent être regénérés pour intégrés les dernières modifications et ce fichier renommé avec son nom vX.X.X.sql ou ver_X.X.X.sql standard.
2.1.3. Description du fichier update_sequences.sql

Ce fichier permet de créer une fonction capable de mettre à jour toutes les séquences correctement liées aux champs auxquels elles se rattachent en fonction de la dernière valeur du champ dans la table. En plus de la création de la fonction ce script exécute la fonction.
2.1.4. Description du fichier install.sql

Ce fichier permet d’initialiser tous les fichiers qui sont décrits ci-dessus dans le bon ordre. Par défaut ce fichier installe la base de données et les données nécessaires aux trois environnements suivants :

l’environnement de développement,
l’environnement de démonstration,
l’environnement de tests.

Note

Ce fichier comporte l’initialisation des commandes postgis par défaut pour la dernière version de postgis. Les commandes pour l’ancienne version sont présentes et commentées dans ce même fichier.
2.2. Paramétrage de la connexion à la base de données

Le paramétrage de la connexion à la base de données se fait dans le fichier dyn/database.inc.php.

Note

Dans le framework le schéma utilisé par défaut est openexemple, dans les applicatifs c’est normalement le nom de l’applicatif <APPLICATIF> (par exemple : openelec, opencimetiere, ...).

<?php
/**
* Ce fichier permet le paramétrage de la connexion à la base de données,
* chaque entrée du tableau correspond à une base différente. Attention
* l'index du tableau conn représente l'identifiant du dossier dans lequel
* seront stockés les fichiers propres a cette base dans l'application.
*
* @package openmairie_exemple
* @version SVN : $Id: database.inc.php 2302 2013-05-23 18:04:22Z fmichon $
*/

// PostGreSQL
$conn[1] = array(
"openExemple", // Titre
"pgsql", // Type de base
"pgsql", // Type de base
"postgres", // Login
"postgres", // Mot de passe
"tcp", // Protocole de connexion
"localhost", // Nom d'hote
"5432", // Port du serveur
"", // Socket
"openexemple", // Nom de la base
"AAAA-MM-JJ", // Format de la date
"openexemple", // Nom du schéma
"", // Préfixe
NULL, // Paramétrage pour l'annuaire LDAP
"mail-default", // Paramétarge pour le serveur de mail
"filestorage-default", // Paramétrage pour le stockage des fichiers
);

?>

La documentation de DB PEAR qui est le module d’abstraction utilisé par le framework donne plus d’informations sur les paramètres.





Évidemment ce ticket appelle à toute question/réponse/remarque pour compléter ou corriger certains de ces points.

Pas de documents joints

Champ Ancienne valeur Date Par
status_idOpen09/03/2017 14:25Thierry BENITA
close_dateAucun(e)09/03/2017 14:25Thierry BENITA
typeTracker13/04/2016 18:09Florent MICHON
FEDER Powered By FusionForge Collaborative Development Environment Charte d'utilisation / Nous contacter / Mentions légales Haut de page