lacodix/laravel-data-migrations
Laravel Data Migrations adds versioned data migrations to Laravel apps, letting you ship seed and data changes alongside schema migrations with tracking and repeatable, idempotent execution.
Architecture fit Data migrations are a separate concern from schema migrations: they version and track one-off data operations (backfills, column transforms, reference-data seeding) using the same ordered, recorded execution model Laravel developers already understand. v3.0.0 does not change that architecture — it changes package identity (Composer name, PHP namespace) and the supported platform matrix. Functionally this is a rename-plus-rebase release, so architectural fit with a standard Laravel codebase is unchanged and low-friction: one dependency, convention-based migration files, a history table.
Integration feasibility
For greenfield adoption, feasibility is high: composer require lacodix/laravel-data-migrations:^3.0, publish/verify config, write data migration files, run the package's commands. For existing users of jlorente/laravel-data-migrations 2.x, the work is mechanical but mandatory and non-trivial: every use Jlorente\DataMigrations\... import, plus any manual service-provider registration or class references in config, must be rewritten. There are no namespace aliases and no Composer replace directive, so the upgrade is an explicit cut-over rather than a transparent swap.
Technical risk
jlorente/* blocks the upgrade until it moves.Key questions
jlorente/laravel-data-migrations anywhere? (composer why jlorente/laravel-data-migrations, lockfile and vendor/ audit across all repos.)Stack fit Clean fit for Laravel 11–12 on PHP 8.2+ and Laravel 13 on PHP 8.3+. Services on Laravel ≤10 or PHP <8.2 are out of scope for this release and need a separate modernization decision; they should not be force-upgraded as part of this change.
Migration path (per application)
jlorente/laravel-data-migrations; add lacodix/laravel-data-migrations:^3.0. Verify the lockfile contains exactly one of the two.Jlorente\DataMigrations → Lacodix\LaravelDataMigrations across app/, config/, database/, and any manual provider registration.composer dump-autoload, php artisan config:clear, php artisan clear-compiled, php artisan package:discover. In containerized deploys, rebuild images rather than patching caches in place.migrate:install is still Laravel's native command (the bundled fix for Laravel 13.24+ specifically prevents the package from shadowing it).Compatibility No legacy aliases and no Composer replacement — the cut-over is all-or-nothing per application. Migration files, directories, history table and history records carry over unchanged, so there is no data rewrite step and no need to re-run historical migrations, provided step 6 passes.
Sequencing
Maintenance Ownership shifts to Lacodix. The maintenance question is no longer "is the upstream abandoned?" but "is the fork well-tended?" — track release cadence, issue responsiveness, and whether Laravel 11 receives patches. Assign a named internal owner for the dependency and a recurring review (e.g. quarterly) of the package's activity, since the fork has a single contributing author on this release.
Support Community/GitHub-issue support with no vendor SLA. Internal escalation therefore depends on our own ability to read and patch the package — worth a quick sanity check that the codebase is small enough for one of our engineers to fork-and-fix if a breaking Laravel change lands before the maintainer responds.
Scaling The operational cost is in the data migrations themselves, not the package. Large backfills run inside the deploy pipeline and can lengthen deploys, hold locks, or time out. Standard guidance applies: batch the work, make each migration idempotent and re-runnable, and prefer off-peak execution for anything touching high-volume tables. The renaming does not change this profile — but a mistaken history-table lookup that triggers re-execution would multiply it.
Failure modes
migrate:install shadowing — fixed in this release for Laravel 13.24+, but older pinned versions of either package can still shadow Laravel's native command and leave the migrations table uncreated. Prevention: post-upgrade verification of php artisan list.Ramp-up Low for developers: the mental model is identical to Laravel migrations, and only the import path and command names change. The real ramp-up cost is organizational — updating internal docs, templates, code-review checklists and any onboarding material that references the old namespace, and briefing the team that "add the data-migrations package" now means the Lacodix one. Estimate per application: under a day for the mechanical rename and validation in a small codebase, plus one staging verification cycle; the schedule driver is the audit and pilot, not the code change.
How can I help you explore Laravel packages today?