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 Db Rebuild Laravel Package

webparking/laravel-db-rebuild

A Laravel package that adds a db:rebuild Artisan command to quickly reset your database by dropping all tables, rerunning migrations, and optionally seeding. Ideal for local development and testing, it makes repeatable database refreshes fast, consistent, and simple without manual SQL.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Developer-environment provisioning (DX investment). The only decision this package genuinely informs is how a team resets local and CI databases: one named command (db:rebuild) that drops tables, re-runs migrations, and optionally seeds. It is a convenience wrapper over mechanics Laravel already ships (migrate:fresh, db:seed), so it sits in the "tooling polish" bucket, not the "product capability" bucket.
  • Build vs. buy vs. copy. Because the scope is one Artisan command under MIT, the real decision is a three-way: (a) use Laravel core (php artisan migrate:fresh --seed), (b) add this dependency, or (c) vendor ~30–60 lines into app/Console/Commands so we own the guardrails. Given the 2020-09-10 last release, 44 stars, and a 0.22 score, (c) or (a) is almost always the better call — this is a copy candidate, not a dependency candidate.
  • CI reproducibility and onboarding time. If adopted, it supports a measurable roadmap-adjacent goal: shrinking "time to first green test run" for new engineers and cutting bespoke reset scripts scattered across READMEs and Makefiles. That is a hiring/onboarding efficiency decision, not a customer-facing one.
  • Seed-data standardization. The optional seeder step is the one durable product-ish value: it lets a team codify "the canonical demo dataset" as a repeatable command, which matters for demos, QA handoffs, and screenshots — decisions that otherwise live in tribal knowledge.
  • Decisions this does not support. It is not a migration-safety tool, not a backup/restore tool, not a data-anonymization or tenancy tool, and has no place on a production runtime path. Do not let it appear in any roadmap discussion framed as "database management capability." It should never be scheduled against a production or shared-staging connection.
  • Roadmap implication: near-zero. Nothing here unblocks a customer feature. Treat any effort spent on it as tooling maintenance with a hard cap (hours, not days), and resist the temptation to formalize it as a platform initiative.

When to Consider This Package

Consider it when:

  • The application is on a legacy Laravel line (roughly 5.5–7.x) where the exact drop-then-migrate-then-seed ergonomics are not yet first-class in core, and the team already tolerates that version's constraints.
  • You want a single, memorably named command that encodes an opinionated reset sequence (drop → migrate → seed with a specific seeder class) so local, CI, and demo environments behave identically.
  • The team accepts an unmaintained dependency and is willing to pin it with a committed lockfile and, ideally, fork or vendor it. MIT licensing makes forking cheap; that option is what makes the abandonment risk tolerable at all.
  • The environment is ephemeral and disposable — local Docker, a throwaway CI service container — where destructive drops are the point rather than a hazard.

Look elsewhere (or just use core) when:

  • You are on Laravel 8+. migrate:fresh --seed already does this, is maintained by the framework team, and gains new capabilities (schema dumps, parallel-test isolation, view handling) for free. Adding a stale wrapper here is strictly negative value.
  • The package's illuminate/support constraint predates your pinned Laravel — in which case Composer will refuse to install it, and the evaluation ends at the solver error.
  • You need production safety guardrails: an environment allowlist, an interactive confirmation, a refuse-if-not-local check, or audit logging. A 2020 dev-convenience command should be assumed not to have these; a hand-written command can bake them in explicitly.
  • You need data masking, tenant scoping, schema-dump acceleration, or parallel-test database isolation — adjacent problems the package does not address.
  • Your org requires an active maintainer, security disclosure process, or CI matrix across supported PHP/Laravel versions. None of that is evidenced here, and the 2020 release date is the single loudest signal in the whole evaluation.

Practical gate: run a throwaway composer require against the real lockfile first. If it resolves cleanly on the current stack, the copy-the-command option is still preferable; if it does not resolve, the decision is made for you and costs five minutes.

How to Pitch It (Stakeholders)

Executives: This is a small developer-productivity utility, not a product feature. It saves engineers a few keystrokes when resetting a local or CI database — effort measured in minutes per developer per day, with zero customer-facing impact and zero revenue exposure. The package is unmaintained (last release 2020), so my recommendation is not to take it on as a dependency. The equivalent behaviour is built into modern Laravel, and where it isn't, the command is small enough to copy into our own codebase under its MIT licence so we own the safety checks. Either way, we spend nothing and carry no supply-chain risk.

Engineering: The capability is "drop tables, re-run migrations, optionally seed" behind one Artisan command. On Laravel 8+ this is migrate:fresh --seed and we should use that. If we want a friendlier, org-specific wrapper — a db:rebuild that runs our named seeder and refuses to execute outside local/CI — we write it ourselves in under a day, with the environment guard, confirmation prompt, and logging that a 2020 community command will not have. If any team is already using it, the migration path is a two-line swap plus deleting the Composer entry; we lose nothing.

Ask: Approve the "use core / vendor the command" path and a half-day of engineering time to add the wrapper with guardrails. Decline adoption of the package itself as an external dependency, and note it in our dependency register as evaluated-and-rejected so the same question doesn't resurface next quarter.

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.
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core