From 05e84401b4e795c1bd892daa1b11f4134db3071d Mon Sep 17 00:00:00 2001 From: lukinovec Date: Mon, 10 Oct 2022 17:38:38 +0200 Subject: [PATCH] Delete tenants on `migrate:fresh` --- src/TenancyServiceProvider.php | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/TenancyServiceProvider.php b/src/TenancyServiceProvider.php index 7e12a857..4126cbc7 100644 --- a/src/TenancyServiceProvider.php +++ b/src/TenancyServiceProvider.php @@ -13,6 +13,9 @@ use Stancl\Tenancy\Contracts\Tenant; use Stancl\Tenancy\Enums\LogMode; use Stancl\Tenancy\Events\Contracts\TenancyEvent; use Stancl\Tenancy\Resolvers\DomainTenantResolver; +use Illuminate\Console\Events\CommandStarting; +use Illuminate\Support\Facades\Schema; +use Stancl\Tenancy\Database\Contracts\TenantWithDatabase; class TenancyServiceProvider extends ServiceProvider { @@ -126,6 +129,22 @@ class TenancyServiceProvider extends ServiceProvider } }); + Event::listen(CommandStarting::class, function (CommandStarting $event) { + $tenantModel = tenancy()->model(); + + if ($event->command === 'migrate:fresh' && Schema::hasTable($tenantModel->getTable())) { + $tenantModel::all()->each(function(Tenant $tenant) { + if (method_exists($tenant, 'domains')) { + $tenant->domains()->delete(); + } + + if ($tenant instanceof TenantWithDatabase) { + $tenant->delete(); + } + }); + } + }); + $this->app->singleton('globalUrl', function ($app) { if ($app->bound(FilesystemTenancyBootstrapper::class)) { $instance = clone $app['url'];