diff --git a/assets/config.php b/assets/config.php index c08fa0a6..2657dfb6 100644 --- a/assets/config.php +++ b/assets/config.php @@ -93,9 +93,13 @@ return [ 'home_url' => '/app', 'queue_database_creation' => false, 'migrate_after_creation' => false, // run migrations after creating a tenant + 'migration_parameters' => [ + // '--force' => true, // force database migrations + ], 'seed_after_migration' => false, // should the seeder run after automatic migration 'seeder_parameters' => [ '--class' => 'DatabaseSeeder', // root seeder class to run after automatic migrations, e.g.: 'DatabaseSeeder' + // '--force' => true, // force database seeder ], 'queue_database_deletion' => false, 'delete_database_after_tenant_deletion' => false, // delete the tenant's database after deleting the tenant diff --git a/src/Jobs/QueuedTenantDatabaseMigrator.php b/src/Jobs/QueuedTenantDatabaseMigrator.php index 5ea12656..c71696cc 100644 --- a/src/Jobs/QueuedTenantDatabaseMigrator.php +++ b/src/Jobs/QueuedTenantDatabaseMigrator.php @@ -19,9 +19,13 @@ class QueuedTenantDatabaseMigrator implements ShouldQueue /** @var string */ protected $tenantId; - public function __construct(Tenant $tenant) + /** @var array */ + protected $migrationParameters = []; + + public function __construct(Tenant $tenant, $migrationParameters = []) { $this->tenantId = $tenant->id; + $this->migrationParameters = $migrationParameters; } /** @@ -33,6 +37,6 @@ class QueuedTenantDatabaseMigrator implements ShouldQueue { Artisan::call('tenants:migrate', [ '--tenants' => [$this->tenantId], - ]); + ] + $this->migrationParameters); } } diff --git a/src/TenantManager.php b/src/TenantManager.php index abf3b766..9e3b20ea 100644 --- a/src/TenantManager.php +++ b/src/TenantManager.php @@ -78,11 +78,11 @@ class TenantManager if ($this->shouldMigrateAfterCreation()) { $afterCreating[] = $this->databaseCreationQueued() - ? new QueuedTenantDatabaseMigrator($tenant) + ? new QueuedTenantDatabaseMigrator($tenant, $this->getMigrationParameters()) : function () use ($tenant) { $this->artisan->call('tenants:migrate', [ '--tenants' => [$tenant['id']], - ]); + ] + $this->getMigrationParameters()); }; } @@ -401,6 +401,11 @@ class TenantManager return $this->app['config']['tenancy.seeder_parameters'] ?? []; } + public function getMigrationParameters() + { + return $this->app['config']['tenancy.migration_parameters'] ?? []; + } + /** * Add an event listener. *