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'           => '',