dashed/laravel-drift
Laravel Drift helps you detect and resolve database schema drift by comparing your migration history with the live database. It surfaces unexpected tables, columns, indexes, and other changes so you can catch issues before they reach production. Artisan commands make it easy to audit and fix drift.
Package posture. dashed/laravel-drift is an MIT-licensed Laravel package with effectively zero ecosystem signal: 0 GitHub stars, 0 dependents, and a single publish event dated 2025-11-21. For a TPM, the first-order conclusion is that this is not a vetted dependency — it is an unvalidated artifact whose correctness, security posture, and longevity rest entirely on the publisher (DashedCMS) and on our own review. The opportunity score (35.65) suggests some latent utility worth a spike, but the composite score (1.86) reflects the absence of any corroborating evidence. Treat every claim about behavior as an assumption to be verified by reading the source, not by trusting the README.
Architecture fit (inferred). The name and publisher imply the package addresses drift — divergence between a declared source of truth and the actual runtime state. In a Laravel context, the two credible interpretations are (a) schema drift: comparing database/migrations or a model/introspection layer against the live database schema, or (b) configuration/environment drift: comparing .env/config keys across environments or against a reference baseline. Both are legitimate and recurring problems in Laravel estates. Neither is architecturally invasive: a well-built drift checker is a read-only diagnostic that sits beside the application, not inside the request path. That is the most favorable possible shape for an unproven dependency — it means we can adopt it in CI and local developer tooling while keeping it out of production runtime.
Integration feasibility. Composer-installable Laravel packages are trivially installable; the bar to clear is whether the package is shapable to our conventions. The unknowns that determine feasibility are concrete: Does it ship a service provider with auto-discovery, or require manual registration? Does it expose an artisan command and a programmatic API (a facade or injectable service) we can call from tests? Does it support the database drivers we actually run — MySQL/PostgreSQL, plus SQLite for the test suite? Does it accommodate Laravel version constraints matching our current and next LTS? A package that only works against one driver, or that requires a specific migration-directory layout, will fail fast and cheaply in a spike.
Technical risk. Ranked:
LICENSE file is present and matches the composer metadata.Key questions for the spike owner. What precisely does it compare, and against what source of truth? Is it read-only, and does it require elevated DB credentials (information_schema access)? Does it have tests, and do they run green against a fresh Laravel app? What is the false-negative rate on a schema we deliberately drift? What is the release history and does the maintainer respond? Can we fork it under MIT and maintain it ourselves if needed?
Stack fit. Excellent conditional on scope. Laravel shops already carry a heavy artisan-command and CI surface, so a diagnostic package slots in with minimal ceremony. The correct framing is developer tooling, not application dependency: install as a require-dev dependency unless and until it proves itself, and keep it out of the production runtime autoload path entirely. This single decision eliminates most of the operational blast radius and should be the default recommendation for the trial period.
Migration path. There is no migration path in the data sense — this replaces, at most, ad-hoc processes: hand-run SHOW CREATE TABLE diffs, tribal knowledge about which environments have drifted, or a cron job someone wrote. The genuine migration is process migration: moving from "we discover drift during an incident" to "drift fails the build." That requires agreeing what the canonical schema baseline is and where the check runs. Scope the first iteration to a single high-value repository, not the fleet.
Compatibility. Three axes to verify before any code is written: Laravel framework version bounds in composer.json, PHP version bounds against our runtime floor, and database driver support. Add a fourth: does it interact cleanly with our existing migration tooling (squashed migrations, schema dumps via schema:dump, multi-tenant or multi-connection setups)? Multi-connection support is a common gap and a frequent reason these tools get abandoned mid-rollout.
Sequencing.
allow_failure: true) job on one repository, reporting only. Measure noise.Maintenance. The realistic posture is self-maintenance from day one. With 0 dependents and no visible contributor base, assume the upstream project will not track Laravel major releases. Committing to this package means committing to a fork: an owner, a branch policy for upstream sync, and a re-audit at each Laravel upgrade. That is a real, recurring cost — perhaps a few days per year — and it must be socialized as such, not absorbed silently by whoever ran the spike.
Support. No community corpus means no Stack Overflow answers and no third-party bug reports to learn from. First-line support is internal; the escalation path ends inside the team. Mitigate with an internal README documenting the exact invocation, expected output, and known false-positive classes, so the tool does not become one person's private knowledge.
Scaling. Drift checks scale with schema size and connection count, not with request volume, so the load profile is benign. Two scaling limits to anticipate: runtime on very large schemas (introspection of thousands of tables can be slow), and credential scope — schema introspection generally needs broad read access, which conflicts with least-privilege database roles. Plan a dedicated read-only CI credential rather than reusing application credentials.
Failure modes.
Ramp-up. Low for consumers — an artisan command is a short README for any Laravel developer, roughly half a day to first productive use including the CI wiring. High for owners — whoever forks it needs genuine fluency in the package internals plus our schema conventions, and that is a multi-day investment that should be planned and named, not discovered. Recommend exactly one named owner during the pilot, with a second engineer doing the audit so the knowledge is not single-threaded.
How can I help you explore Laravel packages today?