From 6ad6fa64258491fb35f9306c04ca2740bb4f6040 Mon Sep 17 00:00:00 2001 From: Maxence Lange Date: Tue, 6 Aug 2024 22:22:38 -0100 Subject: [PATCH] fix(migration-preview): display a message if no attributes set Signed-off-by: Maxence Lange --- core/Command/Db/Migrations/PreviewCommand.php | 9 +++++++++ lib/private/Migration/MetadataManager.php | 12 ++++++++++++ 2 files changed, 21 insertions(+) diff --git a/core/Command/Db/Migrations/PreviewCommand.php b/core/Command/Db/Migrations/PreviewCommand.php index e35100dacb2..5a0e766ee6d 100644 --- a/core/Command/Db/Migrations/PreviewCommand.php +++ b/core/Command/Db/Migrations/PreviewCommand.php @@ -62,6 +62,12 @@ class PreviewCommand extends Command { } $table->render(); + $unsupportedApps = $this->metadataManager->getUnsupportedApps($metadata['migrations']); + if (!empty($unsupportedApps)) { + $output->writeln(''); + $output->writeln('Those apps are not supporting metadata yet and might initiate migrations on upgrade: ' . implode(', ', $unsupportedApps) . ''); + } + return 0; } @@ -90,6 +96,9 @@ class PreviewCommand extends Command { /** @var MigrationAttribute[] $attributes */ foreach($data as $migration => $attributes) { $attributesStr = []; + if (empty($attributes)) { + $attributesStr[] = '(metadata not set)'; + } foreach($attributes as $attribute) { $definition = '' . $attribute->definition() . ""; $definition .= empty($attribute->getDescription()) ? '' : "\n " . $attribute->getDescription(); diff --git a/lib/private/Migration/MetadataManager.php b/lib/private/Migration/MetadataManager.php index 402252d6a46..324c169c626 100644 --- a/lib/private/Migration/MetadataManager.php +++ b/lib/private/Migration/MetadataManager.php @@ -88,6 +88,18 @@ class MetadataManager { ]; } + /** + * returns list of installed apps that does not support migrations metadata (yet) + * + * @param array> $metadata + * + * @return string[] + * @since 30.0.0 + */ + public function getUnsupportedApps(array $metadata): array { + return array_values(array_diff($this->appManager->getInstalledApps(), array_keys($metadata['apps']))); + } + /** * convert raw data to a list of MigrationAttribute * -- 2.39.5