setNoMigrationException() public method

public setNoMigrationException ( boolean $noMigrationException = false )
$noMigrationException boolean Throw an exception or not if no migration is found. Mostly for Continuous Integration.
 /**
  * @Route("/{connectionName}/execute/{version}")
  * @Method("POST")
  */
 public function executeAction($connectionName, $version)
 {
     $connection = $this->getDoctrine()->getConnection($connectionName);
     $outputWriter = new MemoryOutputWriter();
     $configuration = new Configuration($connection);
     $configuration->setName($this->container->getParameter('doctrine_migrations.name'));
     $configuration->setOutputWriter($outputWriter);
     $configuration->setMigrationsTableName($this->container->getParameter('doctrine_migrations.table_name'));
     $configuration->setMigrationsDirectory($this->container->getParameter('doctrine_migrations.dir_name'));
     $configuration->setMigrationsNamespace($this->container->getParameter('doctrine_migrations.namespace'));
     $migration = new Migration($configuration);
     $currentVersion = $configuration->getCurrentVersion();
     $dryRun = false;
     $migration->setNoMigrationException(true);
     $sql = $migration->migrate($version, $dryRun, true);
     return $this->render('MarkeiDoctrineMigrationWebBundle:Migrate:execute.html.twig', ['connectionName' => $connectionName, 'to' => $version, 'from' => $currentVersion, 'output' => $outputWriter->getMemory(), 'name' => $this->container->getParameter('doctrine_migrations.name')]);
 }
 public function execute(InputInterface $input, OutputInterface $output)
 {
     $configuration = $this->getMigrationConfiguration($input, $output);
     $migration = new Migration($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);
     } else {
         $dryRun = (bool) $input->getOption('dry-run');
         // warn the user if no dry run and interaction is on
         if (!$dryRun) {
             $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)';
             if (!$this->canExecute($question, $input, $output)) {
                 $output->writeln('<error>Migration cancelled!</error>');
                 return 1;
             }
         }
         $migration->setNoMigrationException($input->getOption('allow-no-migration'));
         $sql = $migration->migrate($version, $dryRun, $timeAllqueries);
         if (empty($sql)) {
             $output->writeln('<comment>No migrations to execute.</comment>');
         }
     }
 }