mirror of
https://github.com/archtechx/tenancy.git
synced 2025-12-12 21:54:03 +00:00
Better solution for tenant DB exception
This commit is contained in:
parent
41aead5da2
commit
405a137ca1
5 changed files with 10 additions and 8 deletions
|
|
@ -22,9 +22,13 @@ class DatabaseTenancyBootstrapper implements TenancyBootstrapper
|
||||||
public function bootstrap(Tenant $tenant)
|
public function bootstrap(Tenant $tenant)
|
||||||
{
|
{
|
||||||
/** @var TenantWithDatabase $tenant */
|
/** @var TenantWithDatabase $tenant */
|
||||||
$database = $tenant->database()->getName();
|
|
||||||
if (! $tenant->database()->manager()->databaseExists($database)) {
|
// Better debugging, but breaks cached lookup in prod
|
||||||
throw new TenantDatabaseDoesNotExistException($database);
|
if (app()->environment('local')) {
|
||||||
|
$database = $tenant->database()->getName();
|
||||||
|
if (! $tenant->database()->manager()->databaseExists($database)) {
|
||||||
|
throw new TenantDatabaseDoesNotExistException($database);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->database->connectToTenant($tenant);
|
$this->database->connectToTenant($tenant);
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ class TenantCouldNotBeIdentifiedByPathException extends TenantCouldNotBeIdentifi
|
||||||
return BaseSolution::create('Tenant could not be identified on this path')
|
return BaseSolution::create('Tenant could not be identified on this path')
|
||||||
->setSolutionDescription('Did you forget to create a tenant for this path?')
|
->setSolutionDescription('Did you forget to create a tenant for this path?')
|
||||||
->setDocumentationLinks([
|
->setDocumentationLinks([
|
||||||
'Creating Tenants' => 'https://tenancyforlaravel.com/docs/v2/creating-tenants/', // todo update link for v3
|
'Creating Tenants' => 'https://tenancyforlaravel.com/docs/v3/tenants/',
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ class TenantCouldNotBeIdentifiedByRequestDataException extends TenantCouldNotBeI
|
||||||
return BaseSolution::create('Tenant could not be identified with this request data')
|
return BaseSolution::create('Tenant could not be identified with this request data')
|
||||||
->setSolutionDescription('Did you forget to create a tenant with this id?')
|
->setSolutionDescription('Did you forget to create a tenant with this id?')
|
||||||
->setDocumentationLinks([
|
->setDocumentationLinks([
|
||||||
'Creating Tenants' => 'https://tenancyforlaravel.com/docs/v2/creating-tenants/', // todo update link for v3
|
'Creating Tenants' => 'https://tenancyforlaravel.com/docs/v3/tenants/',
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ class TenantCouldNotBeIdentifiedOnDomainException extends TenantCouldNotBeIdenti
|
||||||
return BaseSolution::create('Tenant could not be identified on this domain')
|
return BaseSolution::create('Tenant could not be identified on this domain')
|
||||||
->setSolutionDescription('Did you forget to create a tenant for this domain?')
|
->setSolutionDescription('Did you forget to create a tenant for this domain?')
|
||||||
->setDocumentationLinks([
|
->setDocumentationLinks([
|
||||||
'Creating Tenants' => 'https://tenancyforlaravel.com/docs/v2/creating-tenants/', // todo update link for v3
|
'Creating Tenants' => 'https://tenancyforlaravel.com/docs/v3/tenants/',
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -109,6 +109,4 @@ class CachedTenantResolverTest extends TestCase
|
||||||
$this->assertTrue($tenant->is(app(DomainTenantResolver::class)->resolve('bar')));
|
$this->assertTrue($tenant->is(app(DomainTenantResolver::class)->resolve('bar')));
|
||||||
$this->assertNotEmpty(DB::getQueryLog()); // not empty
|
$this->assertNotEmpty(DB::getQueryLog()); // not empty
|
||||||
}
|
}
|
||||||
|
|
||||||
// todo2 at some point in the future, we could write invalidation tests for the other resolvers too
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue