Skip to content
Snippets Groups Projects
Commit 3ec28efb authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Clarification de la configuration de la bd

parent 72a40374
No related branches found
No related tags found
No related merge requests found
<?php <?php
use Doctrine\DBAL\Driver\PgSQL\Driver as DriverPgSQL; use Doctrine\DBAL\Driver\PgSQL\Driver as DriverPgSQL;
use Doctrine\DBAL\Driver\OCI8\Driver as DriverOCI8;
use Doctrine\ORM\Mapping\Driver\XmlDriver; use Doctrine\ORM\Mapping\Driver\XmlDriver;
use Doctrine\Persistence\Mapping\Driver\MappingDriverChain; use Doctrine\Persistence\Mapping\Driver\MappingDriverChain;
$env = getenv('APPLICATION_ENV') ?: 'production'; const DB_APP_DRIVER = DriverPgSQL::class;
const DB_APP_HOSTNAME = 'XXXX';
const DRIVER_OCI8 = DriverOCI8::class; const DB_APP_PORT = 'XXXX';
const DRIVER_PGSQL = DriverPgSQL::class; const DB_APP_NAME = 'XXXX';
const DB_APP_USERNAME = 'XXXX';
const DB_DRIVER = DRIVER_PGSQL; const DB_APP_PASSWORD = 'XXXX';
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 [ return [
'doctrine' => [ 'doctrine' => [
'driver' => [ 'driver' => [
'orm_octopus' => [ 'orm_default' => [
'class' => MappingDriverChain::class, 'class' => MappingDriverChain::class,
'drivers' => [ 'drivers' => [
'Application\Entity\Db' => 'orm_octopus_xml_driver', 'Application\Entity\Db' => 'orm_default_xml_driver',
], ],
], ],
'orm_octopus_xml_driver' => [ 'orm_default_xml_driver' => [
'class' => XmlDriver::class, 'class' => XmlDriver::class,
'cache' => 'apc', 'cache' => 'apc',
'paths' => [ 'paths' => [
...@@ -43,35 +30,19 @@ return [ ...@@ -43,35 +30,19 @@ return [
], ],
'cache' => [ 'cache' => [
'apc' => [ 'apc' => [
'namespace' => 'PREECOG__' . __NAMESPACE__, 'namespace' => 'MESFORMATIONS__' . __NAMESPACE__,
], ],
], ],
'connection' => [ 'connection' => [
// base de l'application
'orm_default' => [ 'orm_default' => [
'driverClass' => DB_DRIVER, 'driverClass' => DB_APP_DRIVER,
'params' => [ 'params' => [
'driver' => 'Postgresql', 'host' => DB_APP_HOSTNAME,
'host' => DB_HOSTNAME, 'port' => DB_APP_PORT,
'port' => DB_PORT, 'user' => DB_APP_USERNAME,
'password' => DB_APP_PASSWORD,
'dbname' => DB_APP_NAME,
'charset' => 'utf8', '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',
], ],
], ],
], ],
...@@ -80,10 +51,6 @@ return [ ...@@ -80,10 +51,6 @@ return [
'connection' => 'orm_default', 'connection' => 'orm_default',
'configuration' => 'orm_default', 'configuration' => 'orm_default',
], ],
'orm_octopus' => [
'connection' => 'orm_octopus',
'configuration' => 'orm_octopus',
],
], ],
'configuration' => [ 'configuration' => [
'orm_default' => [ 'orm_default' => [
...@@ -92,14 +59,7 @@ return [ ...@@ -92,14 +59,7 @@ return [
'result_cache' => 'array', 'result_cache' => 'array',
'hydration_cache' => 'array', 'hydration_cache' => 'array',
'generate_proxies' => true, 'generate_proxies' => true,
], 'driver' => 'orm_default',
'orm_octopus' => [
'metadata_cache' => 'array',
'query_cache' => 'array',
'result_cache' => 'array',
'hydration_cache' => 'array',
'generate_proxies' => true,
'driver' => 'orm_octopus',
], ],
], ],
], ],
......
<?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
...@@ -272,12 +272,12 @@ return [ ...@@ -272,12 +272,12 @@ return [
'default' => [ 'default' => [
'driver' => 'Postgresql', 'driver' => 'Postgresql',
'charset' => 'utf8', 'charset' => 'utf8',
'port' => DB_PORT, 'port' => DB_APP_PORT,
'host' => DB_HOSTNAME, 'host' => DB_APP_HOSTNAME,
'dbname' => DB_NAME, 'dbname' => DB_APP_NAME,
'user' => DB_USERNAME, 'user' => DB_APP_USERNAME,
'password' => DB_PASSWORD, 'password' => DB_APP_PASSWORD,
], ],
], ],
], ],
......
...@@ -217,7 +217,7 @@ Les champs `SEXE` et `DATE_NAISSANCE` ne sont pas obligatoires (pour des raisons ...@@ -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 ### 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 | | Nom de la colonne | Type | Obligatoire | Commentaire |
|-------------------|-------------|-------------|-----------------------------------------------| |-------------------|-------------|-------------|-----------------------------------------------|
...@@ -234,19 +234,63 @@ Cette vue liste les affectations des agents ...@@ -234,19 +234,63 @@ Cette vue liste les affectations des agents
Exemple depuis l'instance de démonstration. Exemple depuis l'instance de démonstration.
```csv ```csv
'id';'agent_id';'structure_id';'t_principale';'t_hierarchique';'t_fonctionnelle','quotite','date_debut','date_fin' '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 4577,"40",15,1,80,"2025-01-01",null
4578,"40",21,"N","N","O",20,"2025-01-01","2025-08-31" 4578,"41",21,2,20,"2025-01-01","2025-08-31"
``` ```
### La liste des agent·es V_MESFORMATIONS_AGENT_GRADE ### 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 ### 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 ## Données liées aux responsabilités
1. STRUCTURE_RESPONSABLE 1. STRUCTURE_RESPONSABLE
2. STRUCTURE_GESTIONNAIRE 2. AGENT_VALIDEUR
3. AGENT_VALIDEUR
Configuration de la biliothèque Configuration de la biliothèque
=== ===
...@@ -262,7 +306,7 @@ Dans la suite, je présente la configuration faite à Caen exploitant deux bases ...@@ -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é). 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
<?php <?php
use Doctrine\DBAL\Driver\PDO\PgSQL\Driver; use Doctrine\DBAL\Driver\PDO\PgSQL\Driver;
...@@ -272,13 +316,13 @@ use Doctrine\Persistence\Mapping\Driver\MappingDriverChain; ...@@ -272,13 +316,13 @@ use Doctrine\Persistence\Mapping\Driver\MappingDriverChain;
return [ return [
'doctrine' => [ 'doctrine' => [
'driver' => [ 'driver' => [
'orm_octopus' => [ 'orm_sirh' => [
'class' => MappingDriverChain::class, 'class' => MappingDriverChain::class,
'drivers' => [ '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, 'class' => XmlDriver::class,
'cache' => 'apc', 'cache' => 'apc',
'paths' => [ 'paths' => [
...@@ -287,7 +331,7 @@ return [ ...@@ -287,7 +331,7 @@ return [
], ],
], ],
'connection' => [ 'connection' => [
'orm_octopus' => [ 'orm_sirh' => [
'driverClass' => OCI8::class, 'driverClass' => OCI8::class,
'params' => [ 'params' => [
'host' => #####, 'host' => #####,
...@@ -303,86 +347,20 @@ return [ ...@@ -303,86 +347,20 @@ return [
'entitymanager' => [ 'entitymanager' => [
'orm_octopus' => [ 'orm_sirh' => [
'connection' => 'orm_octopus', 'connection' => 'orm_sirh',
'configuration' => 'orm_octopus', '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' => [ 'configuration' => [
'orm_uniform' => [ 'orm_sirh' => [
'metadata_cache' => 'array', 'metadata_cache' => 'array',
'query_cache' => 'array', 'query_cache' => 'array',
'result_cache' => 'array', 'result_cache' => 'array',
'hydration_cache' => 'array', 'hydration_cache' => 'array',
'generate_proxies' => true, 'generate_proxies' => true,
'driver' => 'orm_uniform', 'driver' => 'orm_sirh',
], ],
], ],
], ],
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment