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

Doctrine Schema Update Bundle Laravel Package

webtown/doctrine-schema-update-bundle

A Symfony bundle that adds console commands for reviewing and applying Doctrine schema updates, helping you compare mapped entities with the current database and safely generate or execute the SQL needed to bring schemas in sync.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

The package's entire functional surface is one policy enforcement: it removes or overrides Doctrine's doctrine:schema:update console command so developers are forced through migrations. That is a legitimate and valuable governance objective, but the package itself is a Symfony bundle built around Symfony's DI container and DoctrineBundle command registration. In a Laravel context (the framing of this evaluation) there is no native Doctrine integration to hook into — Eloquent is the default ORM, and doctrine:schema:update does not exist unless the team has explicitly added laravel-doctrine. So the architectural fit is effectively zero unless the target is a Symfony application, in which case the fit is nominal but the package is eight-plus years stale.

Integration feasibility is low. The bundle assumes Symfony 2/3-era bundle conventions and DoctrineBundle versions from roughly the same window; installing it into a modern Laravel or Symfony app will almost certainly produce composer constraint conflicts or require --ignore-platform-reqs, which is itself a disqualifying signal. The underlying behavior is trivially reproducible in either framework — a command override that throws, a removed command registration, or a CI check that fails the build if schema:update is invoked — so the package provides no capability the team cannot own in under an hour.

Technical risk is high relative to the value delivered. Last release March 2016, zero stars, zero dependents, no active maintainer, and therefore no security-response path. Adding an abandoned dependency to enforce a guard rail means the guard rail itself becomes a maintenance liability on every framework upgrade. There is also a subtle correctness gap: blocking the CLI command does not block programmatic use of SchemaTool, so the protection is shallow regardless.

Key questions for the requester: Is the actual goal policy enforcement ("migrations only, no schema drift"), or adoption of this specific package? Which stack is really in play — Laravel/Eloquent, Laravel with laravel-doctrine, or Symfony? What failure are we protecting against — accidental destructive updates in production, or developer habit? And is there an existing CI pipeline where a policy check could live instead?

Integration Approach

Stack fit is poor. If the target is Laravel with Eloquent, the package is inapplicable and should be dropped from consideration immediately. If the target is Laravel with laravel-doctrine, the correct integration is to reimplement the intent: register a command decorator or remove doctrine:schema:update from the console kernel, and add a CI gate that greps the codebase and deployment scripts for the command. If the target is Symfony, the package still loses to a five-line compiler-pass or command override in the application's own src/, because that code will track framework upgrades.

Migration path should be reframed: migrate the policy, not the dependency. Steps are (1) document the rule that schema changes ship only as migrations, (2) implement the block natively in the application shell, (3) add doctrine:schema:validate or the Eloquent equivalent to CI so drift is caught on pull requests, (4) add a deployment-script assertion that refuses to run schema-update commands. None of these steps require the package.

Compatibility is a hard stop in most modern environments. The 2016 release predates PHP 7.4+, Symfony 4+, and modern DoctrineBundle; constraint resolution will likely fail without workarounds, and workarounds here are worse than the problem being solved.

Sequencing, if leadership insists on evaluating it: proof-of-concept against the actual pinned PHP/Symfony/Doctrine versions first, in a throwaway branch, before any design work. Expect the PoC to fail resolution; treat that as the decision point rather than a hurdle to work around. In parallel, prototype the native override so the team has a tested fallback ready when the package is rejected.

Operational Impact

Maintenance burden falls entirely on the adopting team. There is no upstream activity to absorb framework compatibility work, so every PHP, Symfony, or Doctrine major upgrade becomes an internal ticket to patch or fork the bundle. For a package whose only job is to delete a command, that is a poor return.

Support is nonexistent: no maintainer, no issue triage, no security advisories. In a regulated or security-reviewed environment this alone will fail procurement.

Scaling is not a concern in the traditional sense — the package has no runtime footprint on request handling — but organizational scaling is: the policy it encodes is better expressed as a CI rule and a documented convention that every new engineer inherits, rather than as a forgotten Composer line that silently breaks during a framework bump.

Failure modes worth naming: composer conflicts that block unrelated dependency upgrades; silent no-op behavior after a framework change, giving a false sense of enforcement; incomplete enforcement because programmatic SchemaTool calls bypass the CLI block; and supply-chain exposure from an unmaintained, unmonitored dependency in the build path.

Ramp-up for an engineer is near zero, which is precisely the argument against adopting it — there is no learning curve to preserve and no capability to amortize. Recommendation: reject the dependency, adopt the policy, and implement the guard natively with CI coverage.

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.
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle