Skip to content
Snippets Groups Projects
Select Git revision
  • 367c06fa534375a2e5fb8db37bf5c4bed16d33b4
  • master default protected
  • ll-workflow
  • alc-scindage-donnees-pj
  • b24
  • FJ_LL_Tbl_Contrat
  • alc-docker-node
  • ll-apiplatform
  • php84
  • ll-rgpd
  • b23
  • alc-filtre-type-intervenant
  • ll-sans-mdb5
  • formules-ancienne-infra
  • ll-formules
  • alc-intervenant-dmep
  • ll-suppr-v_vol-s
  • b20
  • ll-postgresql
  • b23.0.1
  • b22
  • 24.8
  • 24.7
  • 24.6
  • 24.5
  • 24.4
  • 24.3
  • 24.2
  • 24.1
  • 24.0
  • 23.15
  • 24.0-beta19
  • 24.0-beta18
  • 24.0-beta17
  • 24.0-beta16
  • 24.0-beta15
  • 24.0-beta14
  • 24.0-beta13
  • 23.14
  • 24.0-beta12
  • 24.0-beta11
41 results

NewOseForm.php

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    UpdateBddCommand.php 2.21 KiB
    <?php
    
    namespace Unicaen\BddAdmin\Command;
    
    use Symfony\Component\Console\Command\Command;
    use Symfony\Component\Console\Input\InputInterface;
    use Symfony\Component\Console\Output\OutputInterface;
    use Symfony\Component\Console\Style\SymfonyStyle;
    use Unicaen\BddAdmin\BddAwareTrait;
    use Unicaen\BddAdmin\Ddl\Ddl;
    
    /**
     * Description of UpdateBddCommand
     *
     * @author Laurent Lécluse <laurent.lecluse at unicaen.fr>
     */
    class UpdateBddCommand extends Command
    {
        use BddAwareTrait;
        
        protected function execute(InputInterface $input, OutputInterface $output): int
        {
            $io = new SymfonyStyle($input, $output);
            $bdd = $this->getBdd()->setLogger($io);
    
            $io->title('Mise à jour de la base de données');
            $io->info('Mise à jour des définitions de la base de données. Merci de patienter ...');
    
            $ref = $bdd->getRefDdl();
    
            // Construction de la config de DDL pour filtrer
            $filters = [];
            foreach ($ref as $ddlClass => $objects) {
                foreach ($objects as $object => $objectDdl) {
                    $filters[$ddlClass]['includes'][] = $object;
                }
            }
    
            $tablesDep = [
                Ddl::INDEX,
                Ddl::PRIMARY_CONSTRAINT,
                Ddl::REF_CONSTRAINT,
                Ddl::UNIQUE_CONSTRAINT,
            ];
    
            foreach ($tablesDep as $tableDep) {
                $objects = $bdd->manager($tableDep)->get();
                foreach ($objects as $obj) {
                    if (in_array($obj['table'], $filters['table']['includes'])) {
                        $filters[$tableDep]['includes'][] = $obj['name'];
                    }
                }
            }
    
            // Initialisation et lancement de la pré-migration
            //$mm = new MigrationManager($oa, $ref, $filters);
            //$mm->migration('before');
    
    
            // Mise à jour de la BDD (structures)
            $bdd->alter($ref, $filters, true);
    
    
            // Mise à jour des séquences
            $bdd->majSequences($ref);
    
    
            // Mise à jour des données
            //$bdd->logBegin('Contrôle et mise à jour des données');
            //$bdd->dataUpdater()->run('update');
            //$bdd->logEnd('Données à jour');
    
    
    
            // Post-migration
            //$mm->migration('after');
    
            return Command::SUCCESS;
        }
    }