From ebf3433be0929cbddddef8b27d770fc7302d93ea Mon Sep 17 00:00:00 2001 From: Mona Moxie Date: Sun, 26 May 2024 16:35:24 +0200 Subject: [PATCH] Bugfix: Conditionally load package migration if it has not been published --- src/Providers/VocabMapperServiceProvider.php | 5 ++++- src/Traits/VocabHelper.php | 9 +++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/Providers/VocabMapperServiceProvider.php b/src/Providers/VocabMapperServiceProvider.php index dcc66c5..a1a6c07 100644 --- a/src/Providers/VocabMapperServiceProvider.php +++ b/src/Providers/VocabMapperServiceProvider.php @@ -49,7 +49,10 @@ public function register(): void { $this->mergeConfigFrom(dirname(__DIR__, 2) . '/config/vocab.php', 'vocab'); - $this->loadMigrationsFrom(dirname(__DIR__, 2) . '/database/migrations'); + + if ($this->shouldLoadPackageMigration()) { + $this->loadMigrationsFrom(dirname(__DIR__, 2) . '/database/migrations'); + } $loader = AliasLoader::getInstance(); $loader->alias('VocabCollector', VocabCollector::class); diff --git a/src/Traits/VocabHelper.php b/src/Traits/VocabHelper.php index 5b1065b..cf94379 100644 --- a/src/Traits/VocabHelper.php +++ b/src/Traits/VocabHelper.php @@ -15,4 +15,13 @@ public function getMigrationDirectory(): string return sprintf('%s/%s', $main, $subDir); } + + public function shouldLoadPackageMigration(): bool + { + $migrationDir = $this->getMigrationDirectory(); + + return !is_dir($migrationDir) || + !count(glob($migrationDir . '/*_create_vocabs_table.php')) || + !count(glob($migrationDir . '/*_create_vocab_mappers_table.php')); + } }