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 | ||
Résultat | 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. |
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; }
/** * @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; }
/** * 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>)'; }