Skip to content
Snippets Groups Projects
Select Git revision
  • 5aaa81d6fa182cfd7de25028ba67565cdf585a30
  • master default protected
  • subtemplate
  • release_7.0.6
  • php84
  • 6.x
  • v5.x-test
  • 5x
  • 7.1.0
  • 7.0.6
  • 7.0.5
  • 7.0.4
  • 7.0.3
  • 7.0.2
  • 7.0.1
  • 7.0.0
  • 6.1.7
  • 6.1.6
  • 6.1.5
  • 6.1.4
  • 6.1.3
  • 6.1.2
  • 6.1.1
  • 6.1.0
  • 6.0.3
  • 6.0.2
  • 5.0.6
  • 6.0.1
28 results

MacroControllerFactory.php

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    UpdateBddCommand.php 1.74 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\Data\DataManager;
    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');
    
            $ddl = $bdd->getRefDdl();
            $filters = $bdd->getFiltersForUpdateBdd($ddl);
    
            // Initialisation et lancement de la pré-migration
            //$mm = new MigrationManager($oa, $ddl, $filters);
            //$mm->migration('before');
    
    
            try {
                $bdd->alter($ddl, $filters, true);
                $io->success('Objets à jour');
            } catch (\Throwable $e) {
                $io->error($e->getMessage());
            }
    
    
            // Mise à jour des séquences
            $bdd->majSequences($ddl);
    
    
            // Mise à jour des données
            if (!empty($bdd->data()->getSources())) {
                $io->title('Contrôle et mise à jour des données');
                try {
                    $bdd->data()->run(DataManager::ACTION_UPDATE);
                    $io->success('Données à jour');
                } catch (\Throwable $e) {
                    $io->error($e->getMessage());
                }
            }
    
    
            // Post-migration
            //$mm->migration('after');
    
            return Command::SUCCESS;
        }
    }