diff --git a/assets/config.php b/assets/config.php index bbd2d7bb..8f0a3668 100644 --- a/assets/config.php +++ b/assets/config.php @@ -104,7 +104,7 @@ return [ ], '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' + '--class' => 'DatabaseSeeder', // root seeder class, e.g.: 'DatabaseSeeder' // '--force' => true, // force database seeder ], 'queue_database_deletion' => false, diff --git a/src/Commands/Seed.php b/src/Commands/Seed.php index c1f37150..b2b32adb 100644 --- a/src/Commands/Seed.php +++ b/src/Commands/Seed.php @@ -52,6 +52,10 @@ class Seed extends SeedCommand $this->input->setOption('database', $tenant->getConnectionName()); + foreach (config('tenancy.seeder_parameters') as $parameter => $value) { + $this->input->setOption(ltrim($parameter, '-'), $value); + } + $tenant->run(function () { // Seed parent::handle(); diff --git a/src/Jobs/QueuedTenantDatabaseSeeder.php b/src/Jobs/QueuedTenantDatabaseSeeder.php index 656ae956..e1ecea41 100644 --- a/src/Jobs/QueuedTenantDatabaseSeeder.php +++ b/src/Jobs/QueuedTenantDatabaseSeeder.php @@ -19,13 +19,9 @@ class QueuedTenantDatabaseSeeder implements ShouldQueue /** @var string */ protected $tenantId; - /** @var array */ - protected $seederParameters = []; - - public function __construct(Tenant $tenant, $seederParameters = []) + public function __construct(Tenant $tenant) { $this->tenantId = $tenant->id; - $this->seederParameters = $seederParameters; } /** @@ -37,6 +33,6 @@ class QueuedTenantDatabaseSeeder implements ShouldQueue { Artisan::call('tenants:seed', [ '--tenants' => [$this->tenantId], - ] + $this->seederParameters); + ]); } } diff --git a/src/TenantManager.php b/src/TenantManager.php index e25b5711..e80bf656 100644 --- a/src/TenantManager.php +++ b/src/TenantManager.php @@ -86,11 +86,11 @@ class TenantManager if ($this->shouldSeedAfterMigration()) { $afterCreating[] = $this->databaseCreationQueued() - ? new QueuedTenantDatabaseSeeder($tenant, $this->getSeederParameters()) + ? new QueuedTenantDatabaseSeeder($tenant) : function () use ($tenant) { $this->artisan->call('tenants:seed', [ '--tenants' => [$tenant['id']], - ] + $this->getSeederParameters()); + ]); }; } diff --git a/tests/TestCase.php b/tests/TestCase.php index 257964d1..5d865549 100644 --- a/tests/TestCase.php +++ b/tests/TestCase.php @@ -104,6 +104,7 @@ abstract class TestCase extends \Orchestra\Testbench\TestCase 'driver' => 'sync', 'central' => true, ], + 'tenancy.seeder_parameters' => [], ]); $app->singleton(\Stancl\Tenancy\TenancyBootstrappers\RedisTenancyBootstrapper::class);