Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Laravel Migrations Organiser Laravel Package

jaybizzle/laravel-migrations-organiser

Keeps your Laravel migrations folder tidy by automatically organising migration files into subfolders while Laravel still discovers and runs them. Works with migrate, rollback and refresh, so long-running projects stay clean without changing your workflow.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. jaybizzle/laravel-migrations-organiser is a Composer-installed Laravel package with service-provider auto-discovery. It occupies a narrow slot in the stack: a console command that relocates migration files into subdirectories (typically year-based) under database/migrations, plus whatever extension to the framework's Migrator/migration-path resolution is required for Laravel to keep discovering those files. It is developer/operations tooling, not a runtime dependency — no request-path code, no schema changes, no config surface of note. The architectural significance is that it touches a core framework subsystem (migration discovery and execution) rather than sitting beside it.

Integration feasibility. Low effort. One composer require --dev, one Artisan invocation, one commit. The cost is not in installing it but in proving that every migration-adjacent command still behaves correctly.

Technical risk. Medium-low likelihood, high consequence. The package changes where migration files live and how they are found, so the entire command surface must be regression-tested: migrate, migrate:rollback, migrate:reset, migrate:refresh, migrate:fresh, migrate:status, and schema:dump --prune. Two structural risks stand out. First, Laravel keys migration identity on the filename basename, so nesting is generally safe, but duplicate basenames across folders would collide — verify whether the package rewrites the migrations table or relies purely on recursive discovery. Second, any package that decorates or replaces the Migrator (multi-tenancy packages such as stancl/tenancy or spatie/laravel-multitenancy, custom deployment tooling) may conflict. Framework upgrades that change Migrator internals are the most likely breakage vector. Bus factor is a real concern: ~110 stars, effectively a single maintainer; MIT licensing at least permits an internal fork.

Key questions.

  • Which Laravel and PHP versions are in the supported/tested matrix, and is CI run against them?
  • Does it mutate the migrations table, or only move files and recurse discovery?
  • How does schema:dump --prune behave with nested migration files?
  • Does it interoperate with tenancy packages that override migration paths?
  • Is there a documented reverse operation to flatten the directory again?
  • Does it affect RefreshDatabase and parallel testing in CI?
  • Has upstream Laravel signalled native nested-migration support that would make this redundant?

Integration Approach

Stack fit. Best suited to long-lived Laravel monoliths and agency-maintained applications where database/migrations has grown to hundreds of files, where branch merges routinely conflict in that directory, and where onboarding engineers must scroll years of history. Poor fit for greenfield services, small apps, or teams that regularly squash or schema:dump their migrations — in those cases the problem the package solves does not exist.

Migration path. Add as a dev dependency on a branch; run the organiser locally against a disposable database; execute the full migration command matrix; update CI scripts, deployment hooks, and runbooks; soak in staging; then release to production with the package addition and the file move in a single atomic commit. Critically, no environment should run migrations from a checkout where files have moved but the package is absent — sequencing the two apart is the main deployment hazard.

Compatibility. Confirm Composer constraints against the pinned Laravel version, verify there is no clash with packages extending the migrator, validate inside the project's actual CI image/container, and check that any scripts parsing database/migrations paths or the migrations table are updated. Test migrate:fresh and migrate:rollback explicitly, since those are where path assumptions surface.

Sequencing.

  1. Build the version-compatibility matrix and inspect the package source (Migrator overrides, whether the migrations table is touched).
  2. Pilot on a scratch branch and database.
  3. Run the full command regression suite including schema:dump --prune.
  4. Communicate a short branch-freeze / rebase window to the team; ensure open branches rebase before the move.
  5. Merge package + file reorganisation atomically.
  6. Soak in staging; verify a deploy that runs migrate --force.
  7. Update runbooks and onboarding docs. Rollback plan: revert the commit to restore the flat layout; because the change is additive and file-level, this is clean provided no table rewrite occurred.

Operational Impact

Maintenance. Low steady-state cost, but not zero: pin the version, review quarterly against Laravel releases, and watch the Migrator internals the package depends on. Assume an internal owner and a willingness to fork if the maintainer goes inactive.

Support. Community-only, GitHub issues, no SLA, and a small enough user base that answers will be thin. Budget for an internal knowledge-base entry covering the command matrix and rollback procedure.

Scaling. Scales well with migration count and team size — the benefit grows with the number of files and concurrent branches. Runtime cost of recursive discovery is negligible since migrations execute once per environment.

Failure modes. Broken or silently misbehaving migration commands after a framework upgrade; schema:dump --prune leaving orphaned or missed files in nested folders; conflicts with tenancy packages; a developer adding new migrations to the flat root out of habit; duplicate basenames collapsing in the migrator's keyed collection; deploy-ordering mistakes producing duplicate-run or class-not-found errors; double-running the organiser.

Ramp-up. Very low for developers — one command and a short README. Moderate for release managers, who must own the runbook change and the deploy-ordering rule. Estimate half a day to a day for the pilot and regression matrix, plus a one-to-two-hour team briefing.

TPM recommendation. Treat this as a developer-experience and technical-debt cleanup with a small blast radius but a sensitive failure surface. Adopt where migration-directory churn is a measured pain point (merge-conflict frequency, onboarding time, auditability); defer where it is not. The 9.4 internal score reflects a well-scoped, single-purpose tool; the decision hinge is validation discipline, not capability.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
frankyso/ipaymu
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core