From bfc6e729f5aab231c874b2c80a0d17509c5bb68e Mon Sep 17 00:00:00 2001 From: a6a2f5842 Date: Fri, 21 Nov 2025 14:38:22 +0100 Subject: [PATCH] BF migration publishing --- src/ShopServiceProvider.php | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/ShopServiceProvider.php b/src/ShopServiceProvider.php index d54716c..3f3ced7 100644 --- a/src/ShopServiceProvider.php +++ b/src/ShopServiceProvider.php @@ -24,14 +24,9 @@ class ShopServiceProvider extends ServiceProvider // Publish migrations $this->publishes([ - __DIR__ . '/../database/migrations' => database_path('migrations'), + __DIR__ . '/../database/migrations/create_blax_shop_tables.php.stub' => $this->getMigrationFileName('create_blax_shop_tables.php'), ], 'shop-migrations'); - // Load migrations - if ($this->app->runningInConsole()) { - $this->loadMigrationsFrom(__DIR__ . '/../database/migrations'); - } - // Load routes if enabled (API only) if (config('shop.routes.enabled', true)) { $this->loadRoutesFrom(__DIR__ . '/../routes/api.php'); @@ -52,4 +47,19 @@ class ShopServiceProvider extends ServiceProvider ]); } } + + /** + * Returns existing migration file if found, else uses the current timestamp. + */ + protected function getMigrationFileName(string $migrationFileName): string + { + $timestamp = date('Y_m_d_His'); + + $filesystem = $this->app->make(\Illuminate\Filesystem\Filesystem::class); + + return \Illuminate\Support\Collection::make([$this->app->databasePath() . DIRECTORY_SEPARATOR . 'migrations' . DIRECTORY_SEPARATOR]) + ->flatMap(fn($path) => $filesystem->glob($path . '*_' . $migrationFileName)) + ->push($this->app->databasePath() . "/migrations/{$timestamp}_{$migrationFileName}") + ->first(); + } }