1
0
Fork 0
mirror of https://github.com/archtechx/tenancy.git synced 2026-06-20 20:44:03 +00:00
Automatic multi-tenancy for Laravel. No code changes needed. https://tenancyforlaravel.com
Find a file
lukinovec ad4c924d5c
[MINOR BC] Create pending tenants with pending_since, improve --with-pending (#1458)
> Minor breaking change: Pending tenants would previously go through the
creation pipeline as *not* pending and would only be marked as pending
after full creation. Now, pending tenants go through the creation
process with pending_since set from the start.

Pending tenants aren't getting their `pending_since` set until they're
created completely (e.g. their DB was created, migrated and seeded --
first, the tenant is created fully, and only after that, the tenant is
updated to have `pending_since`). This is a problem if someone wants to
e.g. add a job to the `DatabaseCreated` job pipeline that would check
`$this->tenant->pending()`. Since at the point of `DatabaseCreated`, the
tenant's `pending_since` isn't set yet, `$this->tenant->pending()`
returns `false`, even for tenants created using `createPending()`. So
instead of letting the pending tenant get fully created, and only after
that, setting its `pending_since` (using `update()`), we now set
`pending_since` in `create()`. `CreatingPendingTenant` is now dispatched
from the `static::creating` hook, and `PendingTenantCreated` is
dispatched from `static::created` for consistency.

Setting `pending_since` right in `create()` made the `MigrateDatabase`
and `SeedDatabase` jobs exclude the pending tenants during their
creation if the `tenancy.pending.include_in_queries` config was set to
`false` -- in that case, these jobs would never migrate or seed the
databases of pending tenants. So these jobs now pass `--with-pending` to
their underlying commands, with the value set in their `$includePending`
static property (`true` by default). This overrides the
`tenancy.pending.include_in_queries` config -- unless the
`$includePending` properties are set to `false`, these jobs will always
include pending tenants.

The `--with-pending` tenant command option originally worked just to
opt-in for including pending tenants in the command. Now,
`--with-pending` can accept values (`true`/`1` or `false`/`0`), so e.g.
- `tenants:run foo` with
`--with-pending`/`--with-pending=true`/`--with-pending=1` includes
pending tenants
- `tenants:run foo` with `--with-pending=false`/`--with-pending=0`
**excludes** pending tenants (also `--with-pending=foobar` -- invalid
input, considered `false`)

Passing `--with-pending` makes the command bypass the
`tenancy.pending.include_in_queries` config (so e.g. if
`tenancy.pending.include_in_queries` is set to `true`, and
`--with-pending=false` is passed to a command, the command will exclude
pending tenants). When `--with-pending` is not passed, the command will
include or exclude pending tenants based on the
`tenancy.pending.include_in_queries` config.

---------

Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Samuel Štancl <samuel@archte.ch>
2026-06-05 15:36:57 -07:00
.github [4.x] Laravel 13 support (#1443) 2026-03-18 19:17:28 +01:00
art Update artwork 2020-06-09 15:36:47 +02:00
assets Change tenant storage listeners into jobs (#1446) 2026-04-22 16:45:54 +02:00
doctum wip 2023-04-14 17:23:19 +02:00
extensions [4.x] Add DisallowSqliteAttach feature (#1283) 2025-01-04 15:34:37 +01:00
src [MINOR BC] Create pending tenants with pending_since, improve --with-pending (#1458) 2026-06-05 15:36:57 -07:00
tests [MINOR BC] Create pending tenants with pending_since, improve --with-pending (#1458) 2026-06-05 15:36:57 -07:00
typedefs parallel commands: core # autodetect, bugfixes, improved output 2024-09-27 23:02:03 +02:00
.gitattributes misc: update .gitattributes and .nvim.lua 2025-10-13 16:14:15 +02:00
.gitignore Laravel 11 support + Docker improvements (#29) 2024-02-18 00:18:31 +01:00
.nvim.lua misc: update .gitattributes and .nvim.lua 2025-10-13 16:14:15 +02:00
.php-cs-fixer.php [4.x] Cloning: addTenantParameter(bool), domain(string|null) (#1374) 2025-07-29 17:17:32 +02:00
CLAUDE.md [4.x] URL generation, request data identification improvements (#1357) 2025-06-02 03:43:47 +02:00
composer.json [4.x] Update Pest to v4 (#1430) 2026-03-30 09:44:53 +02:00
CONTRIBUTING.md TSP stub: remove unnecessary imports 2025-12-12 20:20:29 +01:00
docker-compose-m1.override.yml use mysql:8 in docker 2025-01-21 15:23:17 +01:00
docker-compose.yml docker: change mssql env yaml syntax 2026-05-01 15:55:06 +02:00
Dockerfile PHP 8.5 support 2025-10-20 01:44:24 +02:00
DONATIONS.md update md files 2020-06-08 22:42:13 +02:00
INTERNAL.md [4.x] Add DisallowSqliteAttach feature (#1283) 2025-01-04 15:34:37 +01:00
LICENSE Initial commit 2019-01-17 22:24:12 +01:00
phpstan.neon globalUrl: useAssetOrigin() instead of setAssetRoot() 2025-11-14 10:59:31 +01:00
phpunit.xml Misc test fixes (#44) 2024-04-06 19:17:34 +02:00
README.md pending tenants: minor cleanup 2025-10-29 22:54:53 +01:00
static_properties.nu util: add static_properties.nu, more portable shebangs, PHP 8.5 beta 2025-09-22 00:20:33 +02:00
SUPPORT.md Discord link 2022-06-13 19:16:35 +02:00
t util: add static_properties.nu, more portable shebangs, PHP 8.5 beta 2025-09-22 00:20:33 +02:00
test util: add static_properties.nu, more portable shebangs, PHP 8.5 beta 2025-09-22 00:20:33 +02:00

Tenancy for Laravel logo

Laravel 11.x Latest Stable Version GitHub Actions CI status Donate

Tenancy for Laravel — stancl/tenancy

Automatic multi-tenancy for your Laravel app.

You won't have to change a thing in your application's code.

  • ✔️ No model traits to change database connection
  • ✔️ No replacing of Laravel classes (Cache, Storage, ...) with tenancy-aware classes
  • ✔️ Built-in tenant identification based on hostname (including second level domains)

Documentation

Documentation can be found here: https://v4.tenancyforlaravel.com

Need help?

Credits