Returns all migrated versions from the versions table, in an array.
public getMigratedVersions ( ) : |
||
return |
public function __construct(Configuration $configuration) { $this->configuration = $configuration; $this->executedMigrations = $this->configuration->getMigratedVersions(); $this->availableMigrations = $this->configuration->getAvailableVersions(); $this->executedUnavailableMigrations = array_diff($this->executedMigrations, $this->availableMigrations); }
/** * Perform the actual check and return a ResultInterface * * @return ResultInterface */ public function check() { $availableVersions = $this->migrationConfiguration->getAvailableVersions(); $migratedVersions = $this->migrationConfiguration->getMigratedVersions(); $notMigratedVersions = array_diff($availableVersions, $migratedVersions); if (!empty($notMigratedVersions)) { return new Failure('Not all migrations applied', $notMigratedVersions); } $notAvailableVersion = array_diff($migratedVersions, $availableVersions); if (!empty($notAvailableVersion)) { return new Failure('Migrations applied which are not available', $notMigratedVersions); } return new Success(); }
private function showVersions($migrations, Configuration $configuration, OutputInterface $output) { $migratedVersions = $configuration->getMigratedVersions(); foreach ($migrations as $version) { $isMigrated = in_array($version->getVersion(), $migratedVersions); $status = $isMigrated ? '<info>migrated</info>' : '<error>not migrated</error>'; $migrationDescription = $version->getMigration()->getDescription() ? str_repeat(' ', 5) . $version->getMigration()->getDescription() : ''; $formattedVersion = $configuration->getDateTime($version->getVersion()); $output->writeln(' <comment>>></comment> ' . $formattedVersion . ' (<comment>' . $version->getVersion() . '</comment>)' . str_repeat(' ', 49 - strlen($formattedVersion) - strlen($version->getVersion())) . $status . $migrationDescription); } }
/** * @Route("/{connectionName}/") */ public function viewAction($connectionName) { $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); $executedMigrations = $configuration->getMigratedVersions(); $availableMigrations = $configuration->getAvailableVersions(); $executedUnavailableMigrations = array_diff($executedMigrations, $availableMigrations); foreach ($executedUnavailableMigrations as $i => $executedUnavailableMigration) { $executedUnavailableMigrations[$i] = $executedUnavailableMigration . ' (' . $configuration->getDateTime($executedUnavailableMigration) . ')'; } $dryRun = true; $migration->setNoMigrationException(true); $sql = $migration->migrate(null, $dryRun); return $this->render('MarkeiDoctrineMigrationWebBundle:Migrate:view.html.twig', ['connectionName' => $connectionName, 'executedUnavailableMigrations' => $executedUnavailableMigrations, 'to' => $configuration->getLatestVersion(), 'from' => $configuration->getCurrentVersion(), 'migrations' => $sql, 'name' => $this->container->getParameter('doctrine_migrations.name')]); }