Multi-database tenancy

The package comes with all the tooling necessary for multi-database tenancy.


TenantDatabaseManagers are classes which manage tenant databases — they primarily take care of creating and deleting them.

There are database managers for all Laravel-supported DB drivers (MySQL, PostgreSQL, SQLite). There's also a database manager for using a single database, but multiple schemas (one per tenant) with PostgreSQL.

See the database section of the tenancy config for more details.


There are also commands for working with tenant databases. Namely, tenants:migrate and tenants:seed. See the console commands page of the documentation.

Jobs & Listeners

By default, when a tenant is created, there's also a database created for him. This is done using a JobPipeline listener in the TenancyServiceProvider. See the event system page of the documentation.