mirror of
https://github.com/archtechx/tenancy.git
synced 2026-06-21 18:44:06 +00:00
36 lines
1.2 KiB
Markdown
36 lines
1.2 KiB
Markdown
# Database Tenancy Reference
|
|
|
|
Use this when changing tenant database isolation or managers.
|
|
|
|
## Source Files
|
|
|
|
- `src/Database/DatabaseManager.php`
|
|
- `src/Database/DatabaseConfig.php`
|
|
- `src/Database/TenantDatabaseManagers/*`
|
|
- `src/Bootstrappers/DatabaseTenancyBootstrapper.php`
|
|
- `assets/config.php`
|
|
|
|
## Supported Isolation
|
|
|
|
- Separate tenant databases.
|
|
- PostgreSQL schema isolation.
|
|
- Permission-controlled tenant database users.
|
|
- PostgreSQL RLS for single-database tenancy.
|
|
|
|
## Managers
|
|
|
|
- SQLite: `SQLiteDatabaseManager`
|
|
- MySQL/MariaDB: `MySQLDatabaseManager`
|
|
- PostgreSQL: `PostgreSQLDatabaseManager`
|
|
- SQL Server: `MicrosoftSQLDatabaseManager`
|
|
- Permission-controlled variants for MySQL, PostgreSQL, SQL Server.
|
|
- PostgreSQL schema managers for schema isolation.
|
|
|
|
## Rules
|
|
|
|
- `tenant` is a reserved dynamic connection name.
|
|
- Use `database.template_tenant_connection` for the tenant connection template.
|
|
- Use `database.tenant_host_connection_name` for database creation/deletion host connection.
|
|
- Tenant DB names are `prefix + tenant_id + suffix`.
|
|
- Use schema managers only when PostgreSQL schema isolation is intended.
|
|
- Test creation, migration, rollback, deletion, and connection restoration.
|