mirror of
https://github.com/archtechx/tenancy.git
synced 2025-12-13 21:04:03 +00:00
* fix #1112 - throw an exception when DATABASE_URL is defined, minor test changes * Fix code style (php-cs-fixer) * fix typo --------- Co-authored-by: PHP CS Fixer <phpcsfixer@example.com>
This commit is contained in:
parent
af3812e788
commit
2d500f9780
5 changed files with 33 additions and 1 deletions
|
|
@ -4,6 +4,7 @@ declare(strict_types=1);
|
|||
|
||||
namespace Stancl\Tenancy\Bootstrappers;
|
||||
|
||||
use Exception;
|
||||
use Stancl\Tenancy\Contracts\TenancyBootstrapper;
|
||||
use Stancl\Tenancy\Contracts\Tenant;
|
||||
use Stancl\Tenancy\Database\Contracts\TenantWithDatabase;
|
||||
|
|
@ -23,6 +24,13 @@ class DatabaseTenancyBootstrapper implements TenancyBootstrapper
|
|||
public function bootstrap(Tenant $tenant): void
|
||||
{
|
||||
/** @var TenantWithDatabase $tenant */
|
||||
if (data_get($tenant->database()->getTemplateConnection(), 'url')) {
|
||||
// The package works with individual parts of the database connection config, so DATABASE_URL is not supported.
|
||||
// When DATABASE_URL is set, this bootstrapper can silently fail i.e. keep using the template connection's database URL
|
||||
// which takes precedence over individual segments of the connection config. This issue can be hard to debug as it can be
|
||||
// production-specific. Therefore, we throw an exception (that effectively blocks all tenant pages) to prevent incorrect DB use.
|
||||
throw new Exception('The template connection must NOT have URL defined. Specify the connection using individual parts instead of a database URL.');
|
||||
}
|
||||
|
||||
// Better debugging, but breaks cached lookup in prod
|
||||
if (app()->environment('local') || app()->environment('testing')) { // todo@docs mention this change in v4 upgrade guide https://github.com/archtechx/tenancy/pull/945#issuecomment-1268206149
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue