From 3ec28efb40d3604039fc0e1d2d2d9826a071b934 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Metivier <jean-philippe.metivier@unicaen.fr> Date: Mon, 14 Apr 2025 12:08:05 +0200 Subject: [PATCH] Clarification de la configuration de la bd --- config/autoload/database-app.local.php.dist | 66 +++++++++ config/autoload/database-sirh.local.php.dist | 72 ++++++++++ config/autoload/database.local.php.dist | 106 -------------- config/autoload/unicaen-bdd-admin.global.php | 10 +- documentation/docs/connecteurs.md | 140 ++++++++----------- 5 files changed, 202 insertions(+), 192 deletions(-) create mode 100644 config/autoload/database-app.local.php.dist create mode 100644 config/autoload/database-sirh.local.php.dist delete mode 100644 config/autoload/database.local.php.dist diff --git a/config/autoload/database-app.local.php.dist b/config/autoload/database-app.local.php.dist new file mode 100644 index 00000000..1de21cf7 --- /dev/null +++ b/config/autoload/database-app.local.php.dist @@ -0,0 +1,66 @@ +<?php + +use Doctrine\DBAL\Driver\PgSQL\Driver as DriverPgSQL; +use Doctrine\ORM\Mapping\Driver\XmlDriver; +use Doctrine\Persistence\Mapping\Driver\MappingDriverChain; + +const DB_APP_DRIVER = DriverPgSQL::class; +const DB_APP_HOSTNAME = 'XXXX'; +const DB_APP_PORT = 'XXXX'; +const DB_APP_NAME = 'XXXX'; +const DB_APP_USERNAME = 'XXXX'; +const DB_APP_PASSWORD = 'XXXX'; + +return [ + 'doctrine' => [ + 'driver' => [ + 'orm_default' => [ + 'class' => MappingDriverChain::class, + 'drivers' => [ + 'Application\Entity\Db' => 'orm_default_xml_driver', + ], + ], + 'orm_default_xml_driver' => [ + 'class' => XmlDriver::class, + 'cache' => 'apc', + 'paths' => [ + __DIR__ . '/../src/Application/Entity/Db/Mapping', + ], + ], + ], + 'cache' => [ + 'apc' => [ + 'namespace' => 'MESFORMATIONS__' . __NAMESPACE__, + ], + ], + 'connection' => [ + 'orm_default' => [ + 'driverClass' => DB_APP_DRIVER, + 'params' => [ + 'host' => DB_APP_HOSTNAME, + 'port' => DB_APP_PORT, + 'user' => DB_APP_USERNAME, + 'password' => DB_APP_PASSWORD, + 'dbname' => DB_APP_NAME, + 'charset' => 'utf8', + ], + ], + ], + 'entitymanager' => [ + 'orm_default' => [ + 'connection' => 'orm_default', + 'configuration' => 'orm_default', + ], + ], + 'configuration' => [ + 'orm_default' => [ + 'metadata_cache' => 'array', + 'query_cache' => 'array', + 'result_cache' => 'array', + 'hydration_cache' => 'array', + 'generate_proxies' => true, + 'driver' => 'orm_default', + ], + ], + ], +]; \ No newline at end of file diff --git a/config/autoload/database-sirh.local.php.dist b/config/autoload/database-sirh.local.php.dist new file mode 100644 index 00000000..e695bc19 --- /dev/null +++ b/config/autoload/database-sirh.local.php.dist @@ -0,0 +1,72 @@ +<?php + +use Doctrine\DBAL\Driver\PgSQL\Driver as DriverPgSQL; +use Doctrine\DBAL\Driver\OCI8\Driver as DriverOCI8; +use Doctrine\ORM\Mapping\Driver\XmlDriver; +use Doctrine\Persistence\Mapping\Driver\MappingDriverChain; + +const DRIVER_SIRH_OCI8 = DriverOCI8::class; +const DRIVER_SIRH_PGSQL = DriverPgSQL::class; + +const DB_SIRH_DRIVER = DRIVER_SIRH_PGSQL; +//const DB_SIRH_DRIVER = DRIVER_SIRH_OCI8; +const DB_SIRH_HOSTNAME = 'XXXX'; +const DB_SIRH_PORT = 'XXXX'; +const DB_SIRH_NAME = 'XXXX'; +const DB_SIRH_USERNAME = 'XXXX'; +const DB_SIRH_PASSWORD = 'XXXX'; + +return [ + 'doctrine' => [ + 'driver' => [ + 'orm_sirh' => [ + 'class' => MappingDriverChain::class, + 'drivers' => [ + 'Application\Entity\Db' => 'orm_sirh_xml_driver', + ], + ], + 'orm_sirh_xml_driver' => [ + 'class' => XmlDriver::class, + 'cache' => 'apc', + 'paths' => [ + __DIR__ . '/../src/Application/Entity/Db/Mapping', + ], + ], + ], + 'cache' => [ + 'apc' => [ + 'namespace' => 'MESFORMATIONS__' . __NAMESPACE__, + ], + ], + 'connection' => [ + 'orm_sirh' => [ + 'driverClass' => DB_SIRH_DRIVER, + 'params' => [ + 'host' => DB_SIRH_HOSTNAME, + 'port' => DB_SIRH_PORT, + 'user' => DB_SIRH_USERNAME, + 'password' => DB_SIRH_PASSWORD, + 'service' => DB_SIRH_NAME, + 'servicename' => DB_SIRH_NAME, + 'charset' => 'AL32UTF8', + ], + ], + ], + 'entitymanager' => [ + 'orm_sirh' => [ + 'connection' => 'orm_sirh', + 'configuration' => 'orm_sirh', + ], + ], + 'configuration' => [ + 'orm_sirh' => [ + 'metadata_cache' => 'array', + 'query_cache' => 'array', + 'result_cache' => 'array', + 'hydration_cache' => 'array', + 'generate_proxies' => true, + 'driver' => 'orm_sirh', + ], + ], + ], +]; \ No newline at end of file diff --git a/config/autoload/database.local.php.dist b/config/autoload/database.local.php.dist deleted file mode 100644 index e58400b5..00000000 --- a/config/autoload/database.local.php.dist +++ /dev/null @@ -1,106 +0,0 @@ -<?php - -use Doctrine\DBAL\Driver\PgSQL\Driver as DriverPgSQL; -use Doctrine\DBAL\Driver\OCI8\Driver as DriverOCI8; -use Doctrine\ORM\Mapping\Driver\XmlDriver; -use Doctrine\Persistence\Mapping\Driver\MappingDriverChain; - -$env = getenv('APPLICATION_ENV') ?: 'production'; - -const DRIVER_OCI8 = DriverOCI8::class; -const DRIVER_PGSQL = DriverPgSQL::class; - -const DB_DRIVER = DRIVER_PGSQL; -const DB_HOSTNAME = 'XXXX'; -const DB_PORT = 'XXXX'; -const DB_NAME = 'XXXX'; -const DB_USERNAME = 'XXXX'; -const DB_PASSWORD = 'XXXX'; - -const DB_SYNCHRO_DRIVER = DRIVER_OCI8; -const DB_SYNCHRO_HOSTNAME = 'XXXX'; -const DB_SYNCHRO_PORT = 'XXXX'; -const DB_SYNCHRO_NAME = 'XXXX'; -const DB_SYNCHRO_USERNAME = 'XXXX'; -const DB_SYNCHRO_PASSWORD = 'XXXX'; - -return [ - 'doctrine' => [ - 'driver' => [ - 'orm_octopus' => [ - 'class' => MappingDriverChain::class, - 'drivers' => [ - 'Application\Entity\Db' => 'orm_octopus_xml_driver', - ], - ], - 'orm_octopus_xml_driver' => [ - 'class' => XmlDriver::class, - 'cache' => 'apc', - 'paths' => [ - __DIR__ . '/../src/Application/Entity/Db/Mapping', - ], - ], - ], - 'cache' => [ - 'apc' => [ - 'namespace' => 'PREECOG__' . __NAMESPACE__, - ], - ], - 'connection' => [ - // base de l'application - 'orm_default' => [ - 'driverClass' => DB_DRIVER, - 'params' => [ - 'driver' => 'Postgresql', - 'host' => DB_HOSTNAME, - 'port' => DB_PORT, - 'charset' => 'utf8', - 'driverOptions' => [1002 => 'SET NAMES utf8'], - 'user' => DB_USERNAME, - 'username' => DB_USERNAME, - 'password' => DB_PASSWORD, - 'dbname' => DB_NAME, - ], - ], - 'orm_octopus' => [ - 'driverClass' => DB_SYNCHRO_DRIVER, - 'params' => [ - 'host' => DB_SYNCHRO_HOSTNAME, - 'port' => DB_SYNCHRO_PORT, - 'user' => DB_SYNCHRO_USERNAME, - 'password' => DB_SYNCHRO_PASSWORD, - 'service' => DB_SYNCHRO_NAME, - 'servicename' => DB_SYNCHRO_NAME, - 'charset' => 'AL32UTF8', - ], - ], - ], - 'entitymanager' => [ - 'orm_default' => [ - 'connection' => 'orm_default', - 'configuration' => 'orm_default', - ], - 'orm_octopus' => [ - 'connection' => 'orm_octopus', - 'configuration' => 'orm_octopus', - ], - ], - 'configuration' => [ - 'orm_default' => [ - 'metadata_cache' => 'array', - 'query_cache' => 'array', - 'result_cache' => 'array', - 'hydration_cache' => 'array', - 'generate_proxies' => true, - ], - 'orm_octopus' => [ - 'metadata_cache' => 'array', - 'query_cache' => 'array', - 'result_cache' => 'array', - 'hydration_cache' => 'array', - 'generate_proxies' => true, - 'driver' => 'orm_octopus', - ], - ], - ], -]; \ No newline at end of file diff --git a/config/autoload/unicaen-bdd-admin.global.php b/config/autoload/unicaen-bdd-admin.global.php index d23c64e3..60496c59 100644 --- a/config/autoload/unicaen-bdd-admin.global.php +++ b/config/autoload/unicaen-bdd-admin.global.php @@ -272,12 +272,12 @@ return [ 'default' => [ 'driver' => 'Postgresql', 'charset' => 'utf8', - 'port' => DB_PORT, - 'host' => DB_HOSTNAME, + 'port' => DB_APP_PORT, + 'host' => DB_APP_HOSTNAME, - 'dbname' => DB_NAME, - 'user' => DB_USERNAME, - 'password' => DB_PASSWORD, + 'dbname' => DB_APP_NAME, + 'user' => DB_APP_USERNAME, + 'password' => DB_APP_PASSWORD, ], ], ], diff --git a/documentation/docs/connecteurs.md b/documentation/docs/connecteurs.md index bff84422..3861725b 100644 --- a/documentation/docs/connecteurs.md +++ b/documentation/docs/connecteurs.md @@ -217,7 +217,7 @@ Les champs `SEXE` et `DATE_NAISSANCE` ne sont pas obligatoires (pour des raisons ### La liste des agent·es V_MESFORMATIONS_AGENT_AFFECTATION -Cette vue liste les affectations des agents +Cette vue liste les affectations des agents, elle permet notamment le rattachement des agents aux structures. | Nom de la colonne | Type | Obligatoire | Commentaire | |-------------------|-------------|-------------|-----------------------------------------------| @@ -234,19 +234,63 @@ Cette vue liste les affectations des agents Exemple depuis l'instance de démonstration. ```csv 'id';'agent_id';'structure_id';'t_principale';'t_hierarchique';'t_fonctionnelle','quotite','date_debut','date_fin' -4577,"40",15,"O","O","O",80,"2025-01-01",null -4578,"40",21,"N","N","O",20,"2025-01-01","2025-08-31" +4577,"40",15,1,80,"2025-01-01",null +4578,"41",21,2,20,"2025-01-01","2025-08-31" ``` ### La liste des agent·es V_MESFORMATIONS_AGENT_GRADE +Cette vue liste les corps, grades des agents, elle permet le calcul d'indicateur ou le déclenchement de processus différents. + +| Nom de la colonne | Type | Obligatoire | Commentaire | +|-------------------|-------------|-------------|----------------------------------------------------| +| ID | integer | Oui | Clef primaire | +| AGENT_ID | varchar(40) | Oui | Clef étrangère vers V_MESFORMATIONS_AGENT | +| STRUCTURE_ID | integer | Oui | Clef étrangère vers V_MESFORMATIONS_STRUCTURE | +| CORRESPONDANCE_ID | integer | Oui | Clef étrangère vers V_MESFORMATIONS_CORRESPONDANCE | +| CORPS_ID | integer | Oui | Clef étrangère vers V_MESFORMATIONS_CORPS | +| GRADE_ID | integer | Oui | Clef étrangère vers V_MESFORMATIONS_GRADE | +| EMPLOITYPE_ID | integer | Oui | Clef étrangère vers V_MESFORMATIONS_EMPLOITYPE | +| DATE_DEBUT | DateTime | Oui | | +| DATE_FIN | DateTime | Non | | + +Exemple depuis l'instance de démonstration. +```csv +'id';'agent_id';'structure_id';'t_principale';'t_hierarchique';'t_fonctionnelle','quotite','date_debut','date_fin' +4577,"40",15, 1, 60, 150, 14, "2025-01-01",null +4578,"40",21, 2, 67, 114, 68, "2025-01-01",null +``` ### La liste des agent·es V_MESFORMATIONS_AGENT_STATUT +Cette vue liste les statuts connues des agents, elle a pour le moment des fins d'affichage (mais pourrait être exploitée pour du filtrage par la suite). + + +| Nom de la colonne | Type | Obligatoire | Commentaire | +|-------------------|-------------|-------------|-----------------------------------------------| +| ID | integer | Oui | Clef primaire | +| AGENT_ID | varchar(40) | Oui | Clef étrangère vers V_MESFORMATIONS_AGENT | +| STRUCTURE_ID | integer | Oui | Clef étrangère vers V_MESFORMATIONS_STRUCTURE | +| DATE_DEBUT | DateTime | Oui | | +| DATE_FIN | DateTime | Non | +| T_TITULAIRE | varchar(1) | Oui | | +| T_CDI | varchar(1) | Oui | | +| T_CDD | varchar(1) | Oui | | +| T_ADMINISTRATIF | varchar(1) | Oui | | +| T_ENSEIGNANT | varchar(1) | Oui | | +| T_CHERCHEUR | varchar(1) | Oui | | +| T_VACATAIRE | varchar(1) | Oui | | +| T_DOCTORANT | varchar(1) | Oui | | +| T_DETACHE_IN | varchar(1) | Oui | | +| T_DETACHE_OUT | varchar(1) | Oui | | +| T_HEBERGE | varchar(1) | Oui | | +| T_DISPO | varchar(1) | Oui | | +| T_EMERITE | varchar(1) | Oui | | +| T_RETRAITE | varchar(1) | Oui | | + ## Données liées aux responsabilités 1. STRUCTURE_RESPONSABLE -2. STRUCTURE_GESTIONNAIRE -3. AGENT_VALIDEUR +2. AGENT_VALIDEUR Configuration de la biliothèque === @@ -262,7 +306,7 @@ Dans la suite, je présente la configuration faite à Caen exploitant deux bases Dans cet exemple, octopus est une base de donnée pgsql (penser à installer le *driver* associé). -Fichier 'config/autoload/database-octopus.local.php' +Fichier 'config/autoload/database-sirh.local.php' ```php <?php use Doctrine\DBAL\Driver\PDO\PgSQL\Driver; @@ -272,13 +316,13 @@ use Doctrine\Persistence\Mapping\Driver\MappingDriverChain; return [ 'doctrine' => [ 'driver' => [ - 'orm_octopus' => [ + 'orm_sirh' => [ 'class' => MappingDriverChain::class, 'drivers' => [ - 'Application\Entity\Db' => 'orm_octopus_xml_driver', + 'Application\Entity\Db' => 'orm_sirh_xml_driver', ], ], - 'orm_octopus_xml_driver' => [ + 'orm_sirh_xml_driver' => [ 'class' => XmlDriver::class, 'cache' => 'apc', 'paths' => [ @@ -287,7 +331,7 @@ return [ ], ], 'connection' => [ - 'orm_octopus' => [ + 'orm_sirh' => [ 'driverClass' => OCI8::class, 'params' => [ 'host' => #####, @@ -303,86 +347,20 @@ return [ 'entitymanager' => [ - 'orm_octopus' => [ - 'connection' => 'orm_octopus', - 'configuration' => 'orm_octopus', + 'orm_sirh' => [ + 'connection' => 'orm_sirh', + 'configuration' => 'orm_sirh', ], ], 'configuration' => [ - 'orm_octopus' => [ - 'metadata_cache' => 'array', - 'query_cache' => 'array', - 'result_cache' => 'array', - 'hydration_cache' => 'array', - 'generate_proxies' => true, - 'driver' => 'orm_octopus', - ], - ], - ], - -]; - - -``` -**Ajout de l'ORM pour UNIFORMSUP** - -Dans cet exemple, uniformsup est une base de donnée oracle (penser à installer le *driver* OCI8). - -Fichier 'config/autoload/database-uniform.local.php' -```php -<?php -use Doctrine\DBAL\Driver\OCI8\Driver as OCI8; -use Doctrine\ORM\Mapping\Driver\XmlDriver; -use Doctrine\Persistence\Mapping\Driver\MappingDriverChain; - -return [ - 'doctrine' => [ - 'driver' => [ - 'orm_uniform' => [ - 'class' => MappingDriverChain::class, - 'drivers' => [ - 'Application\Entity\Db' => 'orm_octopus_xml_driver', - ], - ], - 'orm_uniform_xml_driver' => [ - 'class' => XmlDriver::class, - 'cache' => 'apc', - 'paths' => [ - __DIR__ . '/../src/Application/Entity/Db/Mapping', - ], - ], - ], - 'connection' => [ - 'orm_uniform' => [ - 'driverClass' => OCI8::class, - 'params' => [ - 'host' => #####, - 'user' => #####, - 'password' => #####, - 'charset' => 'AL32UTF8', - 'port' => ####, - 'service' => ####, - 'servicename' => ####, - ], - ], - ], - - - 'entitymanager' => [ - 'orm_uniform' => [ - 'connection' => 'orm_uniform', - 'configuration' => 'orm_uniform', - ], - ], - 'configuration' => [ - 'orm_uniform' => [ + 'orm_sirh' => [ 'metadata_cache' => 'array', 'query_cache' => 'array', 'result_cache' => 'array', 'hydration_cache' => 'array', 'generate_proxies' => true, - 'driver' => 'orm_uniform', + 'driver' => 'orm_sirh', ], ], ], -- GitLab