diff --git a/lib/Migrator/FilesMigrator.php b/lib/Migrator/FilesMigrator.php index 8ddb86ea..0973ce57 100644 --- a/lib/Migrator/FilesMigrator.php +++ b/lib/Migrator/FilesMigrator.php @@ -187,8 +187,8 @@ public function import( IImportSource $importSource, OutputInterface $output ): void { - if ($importSource->getMigratorVersion(static::class) === null) { - $output->writeln("No version for ".static::class.", skipping import…"); + if ($importSource->getMigratorVersion($this->getId()) === null) { + $output->writeln("No version for ".$this->getId().", skipping import…"); return; } $output->writeln("Importing files…"); diff --git a/lib/Service/UserMigrationService.php b/lib/Service/UserMigrationService.php index 9f5a859a..0f2a97d8 100644 --- a/lib/Service/UserMigrationService.php +++ b/lib/Service/UserMigrationService.php @@ -115,13 +115,13 @@ public function export(IUser $user, ?OutputInterface $output = null): string { // Run exports of registered migrators $migratorVersions = [ - static::class => $this->getVersion(), + $this->getId() => $this->getVersion(), ]; foreach ($context->getUserMigrators() as $migratorRegistration) { /** @var IMigrator $migrator */ $migrator = $this->container->get($migratorRegistration->getService()); $migrator->export($user, $exportDestination, $output); - $migratorVersions[get_class($migrator)] = $migrator->getVersion(); + $migratorVersions[$migrator->getId()] = $migrator->getVersion(); } if ($exportDestination->setMigratorVersions($migratorVersions) === false) { throw new UserMigrationException("Could not export user information."); @@ -147,7 +147,7 @@ public function import(string $path, ?IUser $user = null, ?OutputInterface $outp $migratorVersions = $importSource->getMigratorVersions(); if (!$this->canImport($importSource)) { - throw new UserMigrationException("Version ${$migratorVersions[static::class]} for main class ".static::class." is not compatible"); + throw new UserMigrationException("Version ${$migratorVersions[$this->getId()]} for main class ".static::class." is not compatible"); } // Check versions @@ -155,7 +155,7 @@ public function import(string $path, ?IUser $user = null, ?OutputInterface $outp /** @var IMigrator $migrator */ $migrator = $this->container->get($migratorRegistration->getService()); if (!$migrator->canImport($importSource)) { - throw new UserMigrationException("Version ".($importSource->getMigratorVersion(get_class($migrator)) ?? 'null')." for migrator ".get_class($migrator)." is not supported"); + throw new UserMigrationException("Version ".($importSource->getMigratorVersion($migrator->getId()) ?? 'null')." for migrator ".get_class($migrator)." is not supported"); } } @@ -272,4 +272,12 @@ protected function importAppsSettings(IUser $user, } } } + + + /** + * Returns the unique ID + */ + public function getId(): string { + return 'usermigrationservice'; + } }