1
0
Fork 0
mirror of https://github.com/archtechx/tenancy.git synced 2025-12-12 18:44:03 +00:00

Better solution for tenant DB exception

This commit is contained in:
Samuel Štancl 2020-06-29 12:18:03 +02:00
parent 41aead5da2
commit 405a137ca1
5 changed files with 10 additions and 8 deletions

View file

@ -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);

View file

@ -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/',
]); ]);
} }
} }

View file

@ -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/',
]); ]);
} }
} }

View file

@ -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/',
]); ]);
} }
} }

View file

@ -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
} }