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 Database Refactors Laravel Package

signifly/laravel-database-refactors

A Laravel package for organising database refactors as trackable, repeatable classes separate from migrations. Run schema and data refactors safely, keep a history of applied refactors, and roll changes out consistently across environments.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Separating schema migrations from data refactors. The package's core idea is a dedicated, tracked "refactor" step (its own command and registry table) that runs data transformations — backfills, column splits/merges, enum normalization, cleanup before adding NOT NULL constraints — independently of php artisan migrate. That decoupling is what enables expand/contract (parallel change) releases: ship the schema change, run the heavy data work as a repeatable, idempotent step, then contract later.
  • Build vs. buy for zero-downtime deployment capability. If the roadmap includes zero-downtime deploys, large-table restructuring, or multi-tenant data migrations, this capability is on the critical path regardless of package choice. The realistic options are: adopt this package (not recommended), vendor/fork it (medium risk), or build a ~100–200 line internal equivalent (low risk, ~1–2 engineer days).
  • Release-process and on-call design. Moving long-running data work out of the deploy-critical path changes release cadence, rollback strategy, and incident load. This is a product-ops decision as much as a technical one.
  • Risk posture on third-party dependencies. Archived, last release May 2021, 24 stars, 0 dependents. Treat it as a design reference, not a dependency. The decision it most supports is "adopt the pattern, reject the package."
  • Validated use cases to prioritize: renaming columns on high-traffic tables, splitting or merging tables, backfilling denormalized fields, normalizing legacy enums, and any migration that is too slow or too risky to run inline during a deploy.

When to Consider This Package

Consider the approach when:

  • You run Laravel apps with large tables where migrate during deploy is risky or slow.
  • You need idempotent, re-runnable data transforms with an auditable trail of what has already run.
  • You want deploy-time schema changes decoupled from post-deploy data work, or you're moving toward zero-downtime/blue-green releases.

Consider the code (fork/vendor, not require) when:

  • Your stack matches the 2021-era Laravel/PHP versions the code targets.
  • You want a compact reference implementation to copy patterns from and are prepared to own it permanently.

Look elsewhere when:

  • You're on Laravel 9+/10+/11+ or PHP 8.2+ — an archived package has no compatibility path, no security response, and no maintainer.
  • You have any dependency-review, SOC 2, or security-scanning process; an unmaintained package with zero dependents will fail or need an exception.
  • Your needs are occasional one-off backfills — a queued job or a hand-written artisan command is sufficient and cheaper to own.
  • You need capabilities this thin package won't provide: multi-connection support, dry-run/verification, batch throttling, or team-level audit reporting.
  • Alternatives worth evaluating: hand-rolled expand/contract with a separate refactors table, queued data jobs with idempotency keys, or DBA/orchestration-managed scripts for very large datasets.

How to Pitch It (Stakeholders)

Executives: "There's a small open-source package that addresses a real operational pain — changing database structure and data on a live app without deploy risk. The package itself is abandoned, so I'm not recommending we depend on it. I'm recommending we spend one to two engineer days implementing the same pattern internally. That removes a recurring class of deploy incidents and unblocks zero-downtime releases, at a fraction of the cost and risk of adopting an unmaintained dependency."

Engineering: "The abstraction is right: a separate, tracked, idempotent refactor step distinct from schema migrations is exactly what expand/contract deployments need. The implementation is small — a refactors tracking table, an artisan command with up/down, and explicit ordering. We should borrow the design and write our own rather than pulling in a 2021 package with 24 stars, no maintenance, and no dependents. Low build cost, and we own the upgrade path."

Decision summary: Adopt the pattern, reject the dependency. Revisit only if a maintained fork or an equivalent first-party capability appears.

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.
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core