mll-lab/laravel-conditional-migrations
Laravel Conditional Migrations adds condition-based execution to your database migrations, letting you run or skip specific migration files when predefined criteria are met. Ideal for environment-specific schema changes, feature rollouts, and safer deployments.
mll-lab/laravel-utils v4.0.0, and will receive no further updates.laravel-utils with the same scrutiny as any new dependency, or add twenty lines of internal convention."Consider only in one narrow case: it is already installed and pinned in a legacy Laravel 9.x application, composer.lock holds it, the Laravel patch version is confirmed outside the excluded 9.21, and the cost of migrating to the successor is genuinely higher than the cost of carrying it for one more release cycle. Even then, this is a deferral, not a choice — scope the removal date at the same time you accept the deferral.
Look elsewhere in every other case:
The alternative worth weighing against any third-party option: an internal convention. A plain environment or config guard at the top of a migration, plus a documented standard for how optional migrations are written, captures most of the value for teams whose need is "sometimes skip a migration in staging." Reach for a package when you need rollback-awareness, migration-history consistency, and a consistent API across many migrations and many engineers — which is exactly the problem the successor package claims to solve.
For executives — one paragraph. There is a legitimate engineering need to run database schema changes selectively across environments, and we should address it. The specific open-source package we evaluated for this is no longer viable: it is archived, officially deprecated by its own maintainer in favor of a successor package, has one GitHub star, no downstream dependents, and has not shipped since February 2023. Adopting it would create a dependency we cannot patch, cannot get support for, and will have to remove later. The recommended path is either the maintainer's designated successor (mll-lab/laravel-utils v4.0.0) or a small internal convention, and the cost of either is a fraction of the cost of carrying a dead dependency. No customer-facing impact either way; this is infrastructure hygiene and a minor scheduling item.
For engineering — the short version. Capability: good, and worth having. Package: dead. Route to laravel-utils v4.0.0 or implement env/config guards directly in migrations. If a service already depends on this, it is a removal ticket with a date, not a supported component. When evaluating the successor, carry forward the lesson from this one: a release note that excludes a specific Laravel patch is a warning about framework-internals coupling. Confirm the successor's supported version matrix, whether exclusions are enforced via composer.json conflict entries or only documented, and pin the exact Laravel patch in CI so drift into an untested combination fails loudly rather than silently.
How can I help you explore Laravel packages today?