tenancy-docs/docs/source/v2/custom-db-connections.blade.md
2020-01-27 17:04:29 +01:00

1.2 KiB

title description extends section
Custom Database Connections Custom Database Connections _layouts.documentation content

Custom Database Connections

To set a specific database connection for a tenant, set the _tenancy_db_connection key in the tenant's storage. The connection's database name will be still replaced by the tenant's database name. You can [customize that]({{ $page->link('custom-database-names') }}) too.

You may want custom connections to be dynamic (rather than adding them to the DB config manually), so can use something like this:

// Make new tenants use your connection "template"
Tenant::new()->withData([
    '_tenancy_db_connection' => 'someTenantConnectionTemplate',
]);

// Make tweaks to the connection before bootstrapping tenancy
tenancy()->hook('bootstrapping', function ($tenantManager) {
    config(['database.connections.someTenantConnectionTemplate.name' => $tenantManager->tenant['database_name']]);
    config(['database.connections.someTenantConnectionTemplate.password' => $tenantManager->tenant['database_password']]);
    config(['database.connections.someTenantConnectionTemplate.host' => $tenantManager->tenant['database_host']]);
});