dskripchenko/laravel-schemify
Schemify is a Laravel package that simplifies schema definition and generation with a clean, expressive API, helping you describe and manage database structures in code while keeping migrations organized and maintainable.
--layer flag on migrate, migrate:fresh, migrate:install, migrate:status, migrate:reset, db:seed, and db:wipe. This release confirms the abstraction covers the full migration surface, not just the happy path — relevant if you're deciding between schema isolation and row-level tenancy.getOptions() vs configure(), Symfony constructor semantics, search_path session reuse, Laravel 11/12 vs 13 schema resolution). Buying means inheriting that maintenance; building means owning it. This release is evidence for buying if you're on Postgres and staying on Laravel.--layer regression was caused by Laravel 13.21 migrating its own commands to $signature. Any Laravel minor can silently break command overrides. Budget a per-minor-version regression pass for migration/seed/wipe commands in your release plan, and treat Laravel upgrades as coupled releases rather than routine dependency bumps.layers:migrate failing from the second layer onward on Laravel 11/12 is an environment-provisioning outage, not a cosmetic bug. Treat patch versions of this package as change-managed deploys with a staging tenant rollout, and pin explicitly (>=3.4.2 if you're on the 3.4.x line).Consider it when:
php artisan migrate --layer=tenant_acme rather than a parallel command vocabulary.migrate.Look elsewhere when:
search_path.tenant_id scoping, RLS) — this package solves a different problem.CREATE SCHEMA or SET search_path is restricted.For executives: This is a patch release (v3.4.2) with no new features and no breaking changes — but it fixes two defects that would have caused production-visible outages for anyone already running it. The first: on Laravel 13.21+, the --layer option silently vanished from overridden commands, so any command specifying a tenant layer aborted. The second: on Laravel 11 and 12, schema introspection reported the previous layer after an in-place switch, which caused layers:migrate to fail from the second layer onward — i.e. new tenants' migrations would not run. Both are fixed. The strategic read: the package does real work for us (per-tenant Postgres schema isolation using standard artisan migrate semantics), but it is tightly coupled to Laravel's internals. Recommendation: adopt with an explicit version pin and a standing item in each Laravel upgrade to re-verify the migration, seed, and wipe commands against a non-primary layer.
For engineering: Upgrade to 3.4.2 if you are on 3.4.0 or 3.4.1 — 3.4.1 and earlier are unsafe for multi-layer migration workflows on Laravel 11/12, and 3.4.1 and earlier are broken on Laravel 13.21+. If you are below 3.4.0, this release also carries the in-place layer-switch optimisation (connection reuse via SET search_path), so read the 3.4.0 notes alongside this one for behavioural change. Verify in staging: run migrate:install and migrate against a second layer, confirm Schema::hasTable() resolves to the active layer, and confirm --layer appears in help output for all six overridden commands. Expect future breakage risk from Laravel's continued migration to $signature-declared commands; treat Laravel minor upgrades as requiring a regression pass on these commands rather than a routine composer update.
How can I help you explore Laravel packages today?