Skip to content
Snippets Groups Projects
Commit 09ba9cdf authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Merge branch 'release-1.3.4'

parents 1d3a072c a16e0b82
Branches
Tags
No related merge requests found
Pipeline #7831 passed
Journal des modifications
=========================
1.3.4 (06/07/2020)
------------------
- Possibilité d'exécuter du SQL avant la mise à jour d'une table associée à un service.
Exemple : mise à jour de la vue matérialisée SYGAL_MV_EMAIL interrogée par la vue V_SYGAL_INDIVIDU avant que la table
SYGAL_INDIVIDU soit peuplée à partir de V_SYGAL_INDIVIDU.
1.3.3 (11/03/2020)
------------------
......
<?php
return [
/**
* Eventuelles instructions SQL à exécuter avant la mise à jour d'une table de service.
*/
'services_pre_sql' => [
//'individu' => "begin DBMS_MVIEW.REFRESH('SYGAL_MV_EMAIL', 'C'); end;",
],
/**
* Connexion à la base de données.
*/
'doctrine' => [
'connection' => [
'orm_default' => [
......@@ -15,6 +24,9 @@ return [
],
],
],
/**
* Config du mode d'authentification.
*/
'zf-mvc-auth' => [
'authentication' => [
'adapters' => [
......
......@@ -2,9 +2,9 @@
return [
'unicaen-app' => [
'app_infos' => [
'version' => '1.3.3',
'date' => '11/03/2020',
'version' => '1.3.4',
'date' => '06/07/2020',
],
],
'comment' => 'Fichier généré le 11/03/2020 à 14:05:58 avec /home/gauthierb/workspace/sygal-import-ws/bump-version',
'comment' => 'Fichier généré le 06/07/2020 à 14:42:53 avec /app/bump-version',
];
......@@ -6,17 +6,20 @@
-- Web Service d'import de données
-- -------------------------------
--
-- Vue matérialisée interrogeant Apogée et l'annuaire LDAP (grâce au package UCBN_LDAP) pour obtenir
-- les adresses électroniques.
-- Vue matérialisée interrogeant Apogée et l'annuaire LDAP pour obtenir
-- les adresses électroniques (grâce au package UCBN_LDAP).
--
-- NB : cette vue matérialisée est de type "refresh complete on demand", autrement dit est mise à jour manuellement
-- à l'aide de l'instruction PL/SQL `DBMS_MVIEW.REFRESH('SYGAL_MV_EMAIL', 'C')`.
--
-- drop materialized view SYGAL_MV_EMAIL
--/
CREATE MATERIALIZED VIEW SYGAL_MV_EMAIL
refresh complete USING TRUSTED CONSTRAINTS
START WITH SYSDATE NEXT SYSDATE + 1/24/6 as
create materialized view UCBN_SODOCT.SYGAL_MV_EMAIL
refresh complete on demand using trusted constraints
as
select sysdate as last_update, tmp.*
from (
select
......@@ -33,7 +36,7 @@ START WITH SYSDATE NEXT SYSDATE + 1/24/6 as
and dip.cod_tpd_etb in ('39', '40')
and tpd.eta_ths_hdr_drt = 'T' -- Inscription en these
and tpd.tem_sante = 'N' -- Exclusion des theses d exercice
and ind.cod_etu is not null -- oui, oui, ça arrive
and ind.cod_etu is not null -- oui, oui, ça arrive
union
select *
from (
......
Version 1.3.4
=============
Sources PHP
-----------
Sur le serveur, placez-vous dans le répertoire du web service (sans doute `/var/www/sygal-import-ws`)
puis lancez les commandes suivantes pour installer la nouvelle version :
```bash
git fetch && git fetch --tags && git checkout --force 1.3.4 && bash install.sh
```
Selon le moteur PHP que vous avez installé, rechargez le service, exemple :
- php7.0-fpm : `service php7.0-fpm reload`
- apache2-mod-php7.0 : `service apache2 reload`
Base de données
---------------
Nada.
......@@ -22,6 +22,11 @@ class TableService
*/
private $servicesToEntityClassesConfig;
/**
* @var array
*/
private $servicesPreSql = [];
/**
* Liste des colonnes à exclure lors de la mise à jour des tables sources.
*
......@@ -47,6 +52,14 @@ class TableService
$this->servicesToEntityClassesConfig = $servicesToEntityClassesConfig;
}
/**
* @param array $servicesPreSql
*/
public function setServicesPreSql(array $servicesPreSql)
{
$this->servicesPreSql = $servicesPreSql;
}
/**
* Lance la mise à jour des tables sources.
*
......@@ -122,14 +135,17 @@ class TableService
// exclusion éventuelle de certaines colonnes
$columnNames = array_diff($columnNames, $this->excludedColumnNames);
// SQL à exécuter au préalable ?
if (isset($this->servicesPreSql[$service])) {
$sqlParts[] = $this->servicesPreSql[$service];
}
$sqlParts[] = sprintf($deleteTemplate, $tableName);
$sqlParts[] = sprintf($updateTemplate, $tableName, $cols = implode(', ', $columnNames), $cols, $tableName);
}
$sqlParts[] = 'end;';
$sql = implode(PHP_EOL, $sqlParts);
return $sql;
return implode(PHP_EOL, $sqlParts);
}
/**
......
......@@ -15,10 +15,12 @@ class TableServiceFactory
/** @var array $config */
$config = $container->get('config');
$servicesToEntityClassesConfig = $config['services_to_entity_classes'];
$servicesPreSql = $config['services_pre_sql'] ?? [];
$service = new TableService();
$service->setEntityManager($entityManager);
$service->setServicesToEntityClassesConfig($servicesToEntityClassesConfig);
$service->setServicesPreSql($servicesPreSql);
return $service;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment