diff --git a/CHANGELOG.md b/CHANGELOG.md index 5ef7ec32a48ec6f04c317007217dfb1f6e86f0bf..78622d2f90cfcd28370cf085f86763387d32f4ff 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ title: "Changements intervenus sur OSE" author: Laurent Lécluse - DSI - Unicaen --- -# OSE 9.0 alpha +# OSE 9.0-zf2 et 9.0-zf3 ## Correction de bugs @@ -19,9 +19,21 @@ author: Laurent Lécluse - DSI - Unicaen ## Nouveautés +* Deux éditions de OSE sont disponibles : + * 9.0-zf2 basée sur le Zend Framework 2 et qui requiert PHP7.0 (édition "historique") + * 9.0-zf3 basée sur le Zend Framework 3 et qui requiert PHP7.3 * Ajout d'un nouveau contrôle lors des demandes de mise en paiement : il n'est plus possible de payer plus d'heures que d'HETD même si des HETD ont déjà été payées à tort * La vue matérialisée MV_EXT_SERVVICE a été créée pour être exploitée pour alimenter des outils de pilotage (BO, etc). +## Notes de mise à jour + +Si vous mettez à jour à partir des versions : + +* 8.2.* : pas de soucis, un ./bin/ose update suffit. +* 8.1.* : lancez ./bin/ose update normalement. Vous rencontrerez un message d'erreur dû à un bug lié à cette version (PHP Fatal error: Uncaught Error: Call to undefined method OseAdmin::getOseAppliId()). +Pour pallier à cela, il vous faudra exécuter ensuite la commande ./bin/ose update-bdd pour que tout rentre dans l'ordre. +* < 8.1 : mettez d'abord à jour en version 8.1.4, puis mettez à jour en 9.0. + # OSE 8.2.2 ## Correction de bugs diff --git a/INSTALL.md b/INSTALL.md index 6128447d9257b4d782bc5d9faa2eaeeda18e253d..1f796d163a0a60b6ca91404e71d75e7d054ee78e 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -295,26 +295,47 @@ Enfin, ajouter à votre fichier /etc/hosts la ligne suivante : OSE sera accessible sur votre machine, à l'adresse http://ose-test.localhost -# Création de la base de données -Créez une base de données avec un utilisateur pour OSE, un schéma, puis un tablespace vides. -Un script d'initialisation vous est fourni (fichier bdd/install.sql). Il vous revient de le lancer pour peupler la base de données. - -Attention à bien veiller à ce que les accents soient correctement traités. -Les caractères du fichier sont en **UTF8**. - # Configuration technique Personnalisez le fichier `config.local.php` pour adapter OSE à votre établissement. +Une attention toute particulière doit être prise pour configurer les paramètres de base de données, car ces derniers +seront utiles pour terminer la procédure d'installation. + +# Création de la base de données +Créez une base de données avec un utilisateur pour OSE, un schéma, puis un tablespace vides. -# Mode installation -Allez ensuite sur OSE. Par défaut, le mode installation est activé. +Les droits de l'utilisateur Ose doivent être les suivants : -Ce mode vous permettra de : +```sql +GRANT "CONNECT" TO "OSE"; +GRANT "RESOURCE" TO "OSE"; +GRANT "SELECT_CATALOG_ROLE" TO "OSE"; +GRANT CREATE JOB TO "OSE"; +GRANT FLASHBACK ANY TABLE TO "OSE"; +GRANT DEBUG ANY PROCEDURE TO "OSE"; +GRANT DEBUG CONNECT SESSION TO "OSE"; +GRANT SELECT ANY DICTIONARY TO "OSE"; +GRANT ON COMMIT REFRESH TO "OSE"; +GRANT CREATE MATERIALIZED VIEW TO "OSE"; +GRANT CREATE DATABASE LINK TO "OSE"; +GRANT CREATE VIEW TO "OSE"; +GRANT DROP PUBLIC SYNONYM TO "OSE"; +GRANT CREATE PUBLIC SYNONYM TO "OSE"; +GRANT UNLIMITED TABLESPACE TO "OSE"; +GRANT ALTER SESSION TO "OSE"; +GRANT SELECT ON "SYS"."DBA_ROLE_PRIVS" TO "OSE"; +GRANT SELECT ON "SYS"."DBA_TAB_PRIVS" TO "OSE"; +GRANT SELECT ON "SYS"."DBA_ROLES" TO "OSE"; +GRANT FLASHBACK ON "SYS"."ALL_SOURCE" TO "OSE"; +GRANT EXECUTE ON "SYS"."DBMS_LOCK" TO "OSE"; +GRANT EXECUTE ON "SYS"."DBMS_ALERT" TO "OSE"; +``` -* vérifier que toutes les dépendances nécessaires au bon fonctionnement de l'application sont satisfaites -* contrôler que les paramètres de configuration que vous avez choisi fonctionnent correctement -* Choisir ou changer le mot de passe de l'utilisateur `oseappli`, qui est administrateur de l'application. +Une fois la base de données créée, il faut mettre en place les tables, les vues, etc. +Cela se fait au moyen de la commande suivante (depuis le répertoire de OSE) : -Une fois cette étape terminée, il convient de passer OSE en mode production. Cela se fait dans le fichier de configuration `config.local.php`, en positionnant à `false` `global/modeInstallation`. +```bash +./bin/ose install-bdd +``` # Mise en place des tâches CRON Des tâches CRON doivent être lancée sur votre serveur régulièrement pour mettre à jour certaines données @@ -329,7 +350,7 @@ Il est suivi de l'action à exécuter, puis éventuellement de paramètres à pr Exemple d'utilisation pour lancer une tâche de synchronisation appelée `synchro`: ```bash -/usr/bin/php /var/www/ose/bin/ose synchronisation synchro +/usr/bin/php [votre dossier ose]/bin/ose synchronisation synchro ``` | Usage | Fréquence | Action de script | diff --git a/UPDATE.md b/UPDATE.md index d79ace28f46fced64827c7a122fe904010f3f67f..c3dbbdf8e09b2dc00b1aa45e0c81afe0ea97372f 100644 --- a/UPDATE.md +++ b/UPDATE.md @@ -10,13 +10,19 @@ titlepage-rule-height: 1 # Procédure de mise à jour +## Avant de débuter + +[La liste des changements](CHANGELOG.md) recense les changements apportés par les différentes versions de l'application. +Vous êtes invités à consulter cette page, car y sont mentionnées des "notes de mise à jour" par version qu'il +convient de lire attentivement avant de démarrer toute opération. + ## Mode maintenance Placez OSE en mode maintenance. Dans le fichier `config.local.php` : * `maintenance/modeMaintenance` doit passer à `true`. * `maintenance/messageInfo` peut être personnalisé pour informer les utilisateurs. -## Mise à jour des fichiers +## Mise à jour * Si les fichiers sources de OSE ont été modifiés manuellement (hors fichier de configuration local), veillez à remettre la copie de travail dans son état originel au moyen de la commande suivante : @@ -24,16 +30,10 @@ de travail dans son état originel au moyen de la commande suivante : * Dans le répertoire de l'application, exécutez `./bin/ose update`, puis suivez les instructions. -## Mise à jour de la base de données - -* Dans le répertoire `bdd/update`, si un fichier `.sql` corresopnd à la nouvelle version installée, -exécutez les requêtes dans SQL Developer pour mettre à jour la base de données. - -## Tests +La base de données sera également mise à jour (structures et données). -[La liste des changements](CHANGELOG.md) -recense les changements apportés par les différentes versions de l'application. -Vous êtes invité à tester prioritairement ces changements. +Si au niveau base de données vous rencontrez des erreurs, une nouvelle mise à jour de la base de données pourra être lancée +au moyen de la commande `./bin/ose update-bdd`. ## Passage en production diff --git a/admin/src/BddAdmin/Schema.php b/admin/src/BddAdmin/Schema.php index 7d6eb22a1c22f1e7f78222f444499e5df304e083..b6c1d42c0753fd47ab75b39a529a032c6054b325 100644 --- a/admin/src/BddAdmin/Schema.php +++ b/admin/src/BddAdmin/Schema.php @@ -62,15 +62,16 @@ class Schema DdlTable::class . '.create.' => ['label' => 'Création des tables'], DdlView::class . '.create.' => ['label' => 'Création des vues'], DdlPackage::class . '.create.definition' => ['label' => 'Création des définitions de packages'], - DdlMaterializedView::class . '.create.' => ['label' => 'Création des vues matérialisées'], DdlPackage::class . '.create.body' => ['label' => 'Création des corps de packages'], DdlSequence::class . '.alter.' => ['label' => 'Modification des séquences'], DdlTable::class . '.alter.noNotNull|noDropColumns' => ['label' => 'Modification des tables'], - DdlPrimaryConstraint::class . '.alter.' => ['label' => 'Modification des clés primaires'], + DdlPackage::class . '.alter.' => ['label' => 'Modification des packages'], DdlView::class . '.alter.' => ['label' => 'Modification des vues'], + DdlMaterializedView::class . '.create.' => ['label' => 'Création des vues matérialisées'], DdlMaterializedView::class . '.alter.' => ['label' => 'Modification des vues matérialisées'], + DdlPrimaryConstraint::class . '.alter.' => ['label' => 'Modification des clés primaires'], DdlRefConstraint::class . '.alter.' => ['label' => 'Modification des clés étrangères'], DdlUniqueConstraint::class . '.alter.' => ['label' => 'Modification des contraintes d\'unicité'], DdlTrigger::class . '.alter.' => ['label' => 'Modification des triggers'], diff --git a/admin/src/OseAdmin.php b/admin/src/OseAdmin.php index 1d6fa8fff03eaa4249796d6b487912e8478e2533..380b693ceefdd628c14fb2472c36482ba23481b4 100644 --- a/admin/src/OseAdmin.php +++ b/admin/src/OseAdmin.php @@ -246,26 +246,6 @@ class OseAdmin return $scripts; } else { - if ($prePost == 'pre') { // on n'avertit qu'une seule fois! - $this->console->println('Attention : les scripts de migration automatiques n\'ont pas pu être déclenchés :', $this->console::BG_RED); - if ($oldIndex === false) { - $this->console->println('La version précédente de OSE n\'a pas pu être clairement identifiée.', $this->console::BG_RED); - } - if ($newIndex === false) { - $this->console->println('La version cible de OSE n\'a pas pu être clairement identifiée.', $this->console::BG_RED); - } - if ($oldIndex == $newIndex) { - $this->console->println('La version cible est identique à celle déjà installée.', $this->console::BG_RED); - } - if ($oldIndex > $newIndex) { - $this->console->println('L\'installation d\'une version plus ancienne n\'est pas supportée par le système de mises à jours automatiques', $this->console::BG_RED); - } - $this->console->println("Afin d'effectuer vous-mêmes les opérations de migration, merci d'aller dans le répertoire /actions/migration de OSE et examiner puis exécuter les scripts nécessaires manuellement." - . " Ces scripts sont nommés selon la version à laquelle ils correspondent, suivis de -pre s'ils sont à exécuter AVANT la mise ) jour de la DDL de la base de données, et -post s'il sont à exécuter après." - . " Enfin, leur extension renseigne s'il s'agit de code PHP à exécuter ou bien de code SQL (à exécuter dans SQLDeveloper par exemple)." - ); - } - return []; } } diff --git a/config.local.php.default b/config.local.php.default index eba139afffa899457df240fbc8f391bfe3eb684b..0b85cd1da6b27340bd88d399f5cf4cf01c1981fb 100755 --- a/config.local.php.default +++ b/config.local.php.default @@ -3,9 +3,6 @@ return [ /* Paramètres généraux */ 'global' => [ - /* Détermine si l'installation de OSE est faite ou non. Pour pouvoir lancer OSE, positionnez à false */ - 'modeInstallation' => true, - /* Accès en mode HTTP ou HTTPS */ 'scheme' => '',