resolveVersionAlias() public method

Supported aliases are: - first: The very first version before any migrations have been run. - current: The current version. - prev: The version prior to the current version. - next: The version following the current version. - latest: The latest available version. If an existing version number is specified, it is returned verbatimly.
public resolveVersionAlias ( $alias ) : string | null
return string | null A version number, or null if the specified alias does not map to an existing version, e.g. if "next" is passed but the current version is already the latest.
Ejemplo n.º 1
0
 private function getFormattedVersionAlias($alias)
 {
     $version = $this->configuration->resolveVersionAlias($alias);
     //No version found
     if ($version === null) {
         if ($alias == 'next') {
             return 'Already at latest version';
         } elseif ($alias == 'prev') {
             return 'Already at first version';
         }
     }
     //Before first version "virtual" version number
     if ($version === '0') {
         return '<comment>0</comment>';
     }
     //Show normal version number
     return $this->configuration->getDateTime($version) . ' (<comment>' . $version . '</comment>)';
 }
 public function getMigrationsInfos()
 {
     $formattedVersions = [];
     foreach (['prev', 'current', 'next', 'latest'] as $alias) {
         $version = $this->configuration->resolveVersionAlias($alias);
         if ($version === null) {
             if ($alias == 'next') {
                 $formattedVersions[$alias] = 'Already at latest version';
             } elseif ($alias == 'prev') {
                 $formattedVersions[$alias] = 'Already at first version';
             }
         } elseif ($version === '0') {
             $formattedVersions[$alias] = '<comment>0</comment>';
         } else {
             $formattedVersions[$alias] = $this->configuration->getDateTime($version) . ' (<comment>' . $version . '</comment>)';
         }
     }
     $numExecutedUnavailableMigrations = count($this->executedUnavailableMigrations);
     $numNewMigrations = count(array_diff($this->availableMigrations, $this->executedMigrations));
     $infos = ['Name' => $this->configuration->getName() ? $this->configuration->getName() : 'Doctrine Database Migrations', 'Database Driver' => $this->configuration->getConnection()->getDriver()->getName(), 'Database Name' => $this->configuration->getConnection()->getDatabase(), 'Configuration Source' => $this->configuration instanceof AbstractFileConfiguration ? $this->configuration->getFile() : 'manually configured', 'Version Table Name' => $this->configuration->getMigrationsTableName(), 'Version Column Name' => $this->configuration->getMigrationsColumnName(), 'Migrations Namespace' => $this->configuration->getMigrationsNamespace(), 'Migrations Directory' => $this->configuration->getMigrationsDirectory(), 'Previous Version' => $formattedVersions['prev'], 'Current Version' => $formattedVersions['current'], 'Next Version' => $formattedVersions['next'], 'Latest Version' => $formattedVersions['latest'], 'Executed Migrations' => count($this->executedMigrations), 'Executed Unavailable Migrations' => $numExecutedUnavailableMigrations, 'Available Migrations' => count($this->availableMigrations), 'New Migrations' => $numNewMigrations];
     return $infos;
 }
Ejemplo n.º 3
0
 /**
  * @param string $versionAlias
  * @param OutputInterface $output
  * @param Configuration $configuration
  * @return bool|string
  */
 private function getVersionNameFromAlias($versionAlias, OutputInterface $output, Configuration $configuration)
 {
     $version = $configuration->resolveVersionAlias($versionAlias);
     if ($version === null) {
         if ($versionAlias == 'prev') {
             $output->writeln('<error>Already at first version.</error>');
             return false;
         }
         if ($versionAlias == 'next') {
             $output->writeln('<error>Already at latest version.</error>');
             return false;
         }
         $output->writeln(sprintf('<error>Unknown version: %s</error>', $output->getFormatter()->escape($versionAlias)));
         return false;
     }
     return $version;
 }
Ejemplo n.º 4
0
 /**
  * Returns a formatted version string for the alias.
  *
  * @param string $alias
  * @param Configuration $configuration
  * @return string
  */
 protected function getFormattedVersionAlias($alias, Configuration $configuration)
 {
     $version = $configuration->resolveVersionAlias($alias);
     if ($version === null) {
         if ($alias == 'next') {
             return 'Already at latest version';
         } elseif ($alias == 'prev') {
             return 'Already at first version';
         }
     }
     if ($version === '0') {
         return '<comment>0</comment>';
     }
     return $configuration->getDateTime($version) . ' (<comment>' . $version . '</comment>)';
 }