Skip to content
Snippets Groups Projects
Select Git revision
  • 5f98c350fd264d9b2b3ada4d03fc450650727aa0
  • master default protected
  • update-min-openvox-version-07f8cb2
  • cleanup_fixtures
  • add-openvox
  • freebsd-14
  • remove-legacy-top-scope-syntax
  • rel430
  • tests
  • revert-363-augeas-module-cleanup
  • release-4.1.0
  • puppet8
  • relax-dependencies
  • rel400
  • mode
  • puppet7
  • release-3.1.0
  • freebsd13
  • freebsd11
  • stdlib
  • centos
  • v6.0.0
  • v5.1.0
  • v5.0.0
  • v4.5.0
  • v4.4.0
  • v4.3.0
  • v4.2.1
  • v4.2.0
  • v4.1.0
  • v4.0.0
  • v3.1.0
  • v3.0.0
  • v2.0.0
  • 1.12.0
  • 1.11.0
  • 1.10.0
  • 1.9.0
  • 1.8.0
  • 1.7.0
  • 1.6.0
41 results

spec_helper.rb

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    v18Divers.php 3.33 KiB
    <?php
    
    
    
    
    
    class v18Divers extends AbstractMigration
    {
    
        public function description(): string
        {
            return "Migration OSE 17 vers OSE 18";
        }
    
    
    
        public function utile(): bool
        {
            return $this->manager->hasNew('table', 'PLAFOND_PERIMETRE');
        }
    
    
    
        public function before()
        {
            $bdd = $this->manager->getBdd();
            $c   = $this->manager->getOseAdmin()->getConsole();
    
            // test pour savoir si on est bien en V17 minimum
            if (!$this->manager->hasColumn('INTERVENANT', 'EXPORT_DATE')) {
                $c->printDie('Attention : vous devez d\'abord mettre à jour en version 17.3 AVANT de mettre à jour en version 18');
            }
    
            try {
                $c->msg('Coupure forcée de la synchronisation sur la table INTERVENANT');
                $bdd->exec("UPDATE IMPORT_TABLES SET SYNC_ENABLED = 0 WHERE TABLE_NAME = 'INTERVENANT'");
            } catch (\Exception $e) {
                // rien à faire : la contrainte a déjà du être supprimée
            }
    
            $this->sauvegardes();
    
            try {
                $c->msg('Suppression des affectations de recherche ayant des structures invalides');
                $bdd->exec("DELETE FROM AFFECTATION_RECHERCHE WHERE structure_id NOT IN (SELECT ID FROM STRUCTURE)");
            } catch (\Exception $e) {
                // rien à faire : la contrainte a déjà du être supprimée
            }
    
            try {
                $c->msg('Suppression de la contrainte TYPE_INTERVENANT_CODE_UN en prévision de sa recréation');
                $bdd->exec("ALTER TABLE TYPE_INTERVENANT DROP CONSTRAINT TYPE_INTERVENANT_CODE_UN");
            } catch (\Exception $e) {
                // rien à faire : la contrainte a déjà du être supprimée
            }
        }
    
    
    
        protected function sauvegardes()
        {
            $bdd = $this->manager->getBdd();
            $c   = $this->manager->getOseAdmin()->getConsole();
    
            $tables = [
                'INTERVENANT'                    => 'SAVE_V18_INTERVENANT',
                'INTERVENANT_DOSSIER'            => 'SAVE_V18_DOSSIER',
                'TYPE_PIECE_JOINTE_STATUT'       => 'SAVE_V18_TPJS',
                'TYPE_INTERVENTION_STATUT'       => 'SAVE_V18_TIS',
                'STATUT_INTERVENANT'             => 'SAVE_V18_STATUT',