diff options
author | Maxence Lange <maxence@artificial-owl.com> | 2024-08-06 22:22:38 -0100 |
---|---|---|
committer | Maxence Lange <maxence@artificial-owl.com> | 2024-08-06 22:23:12 -0100 |
commit | 6ad6fa64258491fb35f9306c04ca2740bb4f6040 (patch) | |
tree | 4a223766f09cdb6ca51c18135d36fc8761194a82 | |
parent | 3419edd697cbc81b814c60f820355b85b0ee2c05 (diff) | |
download | nextcloud-server-6ad6fa64258491fb35f9306c04ca2740bb4f6040.tar.gz nextcloud-server-6ad6fa64258491fb35f9306c04ca2740bb4f6040.zip |
fix(migration-preview): display a message if no attributes set
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
-rw-r--r-- | core/Command/Db/Migrations/PreviewCommand.php | 9 | ||||
-rw-r--r-- | lib/private/Migration/MetadataManager.php | 12 |
2 files changed, 21 insertions, 0 deletions
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: <info>' . implode(', ', $unsupportedApps) . '</info>'); + } + return 0; } @@ -90,6 +96,9 @@ class PreviewCommand extends Command { /** @var MigrationAttribute[] $attributes */ foreach($data as $migration => $attributes) { $attributesStr = []; + if (empty($attributes)) { + $attributesStr[] = '<comment>(metadata not set)</comment>'; + } foreach($attributes as $attribute) { $definition = '<info>' . $attribute->definition() . "</info>"; $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 @@ -89,6 +89,18 @@ class MetadataManager { } /** + * returns list of installed apps that does not support migrations metadata (yet) + * + * @param array<array-key, array<array-key, 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 * * @param array $migrations |