Doctrine\DBAL\Migrations\Tools\Console\Command\MigrateCommand::execute PHP Method

execute() public method

public execute ( Symfony\Component\Console\Input\InputInterface $input, Symfony\Component\Console\Output\OutputInterface $output )
$input Symfony\Component\Console\Input\InputInterface
$output Symfony\Component\Console\Output\OutputInterface
    public function execute(InputInterface $input, OutputInterface $output)
    {
        $configuration = $this->getMigrationConfiguration($input, $output);
        $migration = $this->createMigration($configuration);
        $this->outputHeader($configuration, $output);
        $timeAllqueries = $input->getOption('query-time');
        $executedMigrations = $configuration->getMigratedVersions();
        $availableMigrations = $configuration->getAvailableVersions();
        $version = $this->getVersionNameFromAlias($input->getArgument('version'), $output, $configuration);
        if ($version === false) {
            return 1;
        }
        $executedUnavailableMigrations = array_diff($executedMigrations, $availableMigrations);
        if (!empty($executedUnavailableMigrations)) {
            $output->writeln(sprintf('<error>WARNING! You have %s previously executed migrations' . ' in the database that are not registered migrations.</error>', count($executedUnavailableMigrations)));
            foreach ($executedUnavailableMigrations as $executedUnavailableMigration) {
                $output->writeln(sprintf('    <comment>>></comment> %s (<comment>%s</comment>)', $configuration->getDateTime($executedUnavailableMigration), $executedUnavailableMigration));
            }
            $question = 'Are you sure you wish to continue? (y/n)';
            if (!$this->canExecute($question, $input, $output)) {
                $output->writeln('<error>Migration cancelled!</error>');
                return 1;
            }
        }
        if ($path = $input->getOption('write-sql')) {
            $path = is_bool($path) ? getcwd() : $path;
            $migration->writeSqlFile($path, $version);
            return 0;
        }
        $dryRun = (bool) $input->getOption('dry-run');
        $cancelled = false;
        $migration->setNoMigrationException($input->getOption('allow-no-migration'));
        $result = $migration->migrate($version, $dryRun, $timeAllqueries, function () use($input, $output, &$cancelled) {
            $question = 'WARNING! You are about to execute a database migration' . ' that could result in schema changes and data lost.' . ' Are you sure you wish to continue? (y/n)';
            $canContinue = $this->canExecute($question, $input, $output);
            $cancelled = !$canContinue;
            return $canContinue;
        });
        if ($cancelled) {
            $output->writeln('<error>Migration cancelled!</error>');
            return 1;
        }
    }

Usage Example

 public function execute(InputInterface $input, OutputInterface $output)
 {
     DoctrineCommandHelper::setApplicationEntityManager($this->getApplication(), $input->getOption('em'));
     $configuration = $this->getMigrationConfiguration($input, $output);
     DoctrineCommand::configureMigrations($this->getApplication()->getKernel()->getContainer(), $configuration);
     parent::execute($input, $output);
 }
All Usage Examples Of Doctrine\DBAL\Migrations\Tools\Console\Command\MigrateCommand::execute