Small code and php doc enhancements in MailPoet/Migrator
[MAILPOET-5416]
This commit is contained in:
committed by
Aschepikov
parent
725d81077f
commit
871d9fd9f8
@ -36,7 +36,7 @@ class Migrator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
foreach ($migrations as $migration) {
|
foreach ($migrations as $migration) {
|
||||||
if ($migration['unknown'] || $migration['status'] === self::MIGRATION_STATUS_COMPLETED) {
|
if (!$migration['level'] || $migration['unknown'] || $migration['status'] === self::MIGRATION_STATUS_COMPLETED) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ class Repository {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Array of filenames.
|
* Array of migration filenames and types.
|
||||||
* Db migrations are loaded first, then app migrations. This ensures that Db migrator is run before app migrations
|
* Db migrations are loaded first, then app migrations. This ensures that Db migrator is run before app migrations
|
||||||
* @return array<array{level: string, name: string}>
|
* @return array<array{level: string, name: string}>
|
||||||
*/
|
*/
|
||||||
@ -59,13 +59,17 @@ class Repository {
|
|||||||
$this->loadForLevel(self::MIGRATIONS_LEVEL_DB),
|
$this->loadForLevel(self::MIGRATIONS_LEVEL_DB),
|
||||||
$this->loadForLevel(self::MIGRATIONS_LEVEL_APP)
|
$this->loadForLevel(self::MIGRATIONS_LEVEL_APP)
|
||||||
);
|
);
|
||||||
$duplicateNames = array_diff_assoc(array_column($migrations, 'name'), array_unique(array_column($migrations, 'name')));
|
$migrationNames = array_column($migrations, 'name');
|
||||||
|
$duplicateNames = array_diff_assoc($migrationNames, array_unique($migrationNames));
|
||||||
if (!empty($duplicateNames)) {
|
if (!empty($duplicateNames)) {
|
||||||
throw MigratorException::duplicateMigrationNames($duplicateNames);
|
throw MigratorException::duplicateMigrationNames($duplicateNames);
|
||||||
}
|
}
|
||||||
return $migrations;
|
return $migrations;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array<array{level: string, name: string}>
|
||||||
|
*/
|
||||||
private function loadForLevel(string $level): array {
|
private function loadForLevel(string $level): array {
|
||||||
$files = new RecursiveIteratorIterator(
|
$files = new RecursiveIteratorIterator(
|
||||||
new RecursiveDirectoryIterator($this->migrationsDir . '/' . $level, RecursiveDirectoryIterator::SKIP_DOTS)
|
new RecursiveDirectoryIterator($this->migrationsDir . '/' . $level, RecursiveDirectoryIterator::SKIP_DOTS)
|
||||||
|
@ -25,7 +25,7 @@ class Runner {
|
|||||||
$this->namespace = $this->getMigrationsNamespace();
|
$this->namespace = $this->getMigrationsNamespace();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function runMigration(string $name, ?string $level): void {
|
public function runMigration(string $name, string $level): void {
|
||||||
$className = $this->getClassName($name, $level);
|
$className = $this->getClassName($name, $level);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@ -40,7 +40,7 @@ class Runner {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private function getClassName(string $name, ?string $level): string {
|
private function getClassName(string $name, string $level): string {
|
||||||
$className = $this->namespace . '\\' . $level . '\\' . $name;
|
$className = $this->namespace . '\\' . $level . '\\' . $name;
|
||||||
if (!class_exists($className)) {
|
if (!class_exists($className)) {
|
||||||
throw MigratorException::migrationClassNotFound($className);
|
throw MigratorException::migrationClassNotFound($className);
|
||||||
|
Reference in New Issue
Block a user