Commit 21e27334 authored by Laurent Lecluse's avatar Laurent Lecluse
Browse files

Test d'accès à la BDD et arrêt du script de MAJ si la BDD n'est pas dispo

parent 26f55826
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -18,9 +18,13 @@ author: Laurent Lécluse - DSI - Unicaen
## Corrections de bugs

* Les informations complémentaires de l'utilisateur (qui relevaient d'une liste spécifique à l'Université de Caen et qui pouvait amener un plantage de l'application) 
ne sont plus affichées lorsqu'on clique sur l'utilisateur en haut à gauche.
ne sont plus affichées lorsqu'on clique sur l'utilisateur en haut à droite.
* Dans la fiche de service, les codes des éléments et des étapes s'affichent de nouveau (ils n'étaient plus visibles)
* Lorsqu'on crée un nouveau rôle et qu'on lui ajoute des privilèges, l'application ne plante plus (problème de cache de données réglé).
* Dans l'export Winpaye, le numéro INSEE est maintenant correctement formatté (il supprime les espaces en trop, et ajoute des zéros devant les clés si nécessaire)

## Nouveautés
* Nouveau script de test d'accès à la BDD depuis le script de mise à jour (./bin/ose test-bdd)

# OSE 8.1.2

+1 −0
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@ $actions = [
    "changement-mot-de-passe"   => "Changement de mot de passe (pour un utilisateur local uniquement)",
    "maj-public-links"          => "Mise à jour des liens vers les répertoires publics des dépendances",
    "clear-cache"               => "Vidage du cache de l'application",
    "test-bdd"                  => "Test d'accès à la base de données",
];

$c->println('Actions possibles :');
+16 −0
Original line number Diff line number Diff line
<?php

$c->println('Test d\'accès à la base de données...', $c::COLOR_LIGHT_CYAN);

try {
    $ok = $oa->bddIsOk();
}catch(\Exception $e){
    $c->println($e->getMessage());
    $ok = false;
}

if ($ok){
    $c->println('La base de données est bien accessible!', $c::BG_GREEN);
}else{
    $c->println('Impossible d\'accéder à la base de données!', $c::BG_RED);
}
 No newline at end of file
+0 −33
Original line number Diff line number Diff line
<?php

$bdd = $oa->getBdd();
$schema = new \BddAdmin\Schema($bdd);

/* Récupération du schéma de référence */
$ref = $schema->loadFromFile($oa->getOseDir().'bdd/ddl.php');



/* Construction de la config de DDL pour filtrer */
$ddlConfig = [];
// On me met à jour que les objets présents dans le schéma par défaut
foreach( $ref as $ddlClass => $config ){
    $ddlConfig[$ddlClass] = ['includes' => array_keys($config)];
}
$ddlConfig = [
    'explicit' => true,
    \BddAdmin\Ddl\DdlView::class => $ddlConfig[\BddAdmin\Ddl\DdlView::class],
    \BddAdmin\Ddl\DdlPackage::class => $ddlConfig[\BddAdmin\Ddl\DdlPackage::class],
    \BddAdmin\Ddl\DdlTrigger::class => $ddlConfig[\BddAdmin\Ddl\DdlTrigger::class],
];
$ddlConfig[\BddAdmin\Ddl\DdlView::class]['excludes'] = [
    'V_FORMULE_LOCAL_VH_PARAMS'
];


/* Mise en place du logging en mode console */
$scl = new \BddAdmin\SchemaConsoleLogger();
$scl->console = $c;
$schema->setLogger($scl);

/* Mise à jour de la BDD */
$r = $schema->alter($ref, $ddlConfig, true);
+4 −0
Original line number Diff line number Diff line
@@ -5,6 +5,10 @@ $c->println("Mise à jour de OSE");
$c->println("Assurez-vous bien d'avoir mis OSE en mode maintenance avant de démarrer\n(pressez Entrée pour continuer)...");
$c->getInput();

if (!$oa->bddIsOk()){
    $c->printDie('La mise à jour ne peut pas se poursuivre : la base de données est inaccessible.');
}

$osedir = $oa->getOseDir();

$c->exec([
Loading