private function mark($version, $all = false)
{
if (!$this->configuration->hasVersion($version)) {
throw MigrationException::unknownMigrationVersion($version);
}
$version = $this->configuration->getVersion($version);
if ($this->markMigrated && $this->configuration->hasVersionMigrated($version)) {
$marked = true;
if (!$all) {
throw new \InvalidArgumentException(sprintf('The version "%s" already exists in the version table.', $version));
}
}
if (!$this->markMigrated && !$this->configuration->hasVersionMigrated($version)) {
$marked = false;
if (!$all) {
throw new \InvalidArgumentException(sprintf('The version "%s" does not exists in the version table.', $version));
}
}
if (!isset($marked)) {
if ($this->markMigrated) {
$version->markMigrated();
} else {
$version->markNotMigrated();
}
}
}