Weave Code
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 Migrations Extra Bundle Laravel Package

sylius-labs/doctrine-migrations-extra-bundle

Symfony bundle extending DoctrineMigrationsBundle with container-aware migration instantiation and topological sorting of migrations across multiple namespaces/bundles. Configure migration dependencies to ensure predictable, correct execution order in apps or bundles.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Modular Monolith or Plugin-Based Architecture: Enables dependency-aware migration ordering for plugins/bundles (e.g., e-commerce platforms like Sylius, where plugins like payment gateways or inventory systems depend on core migrations).
  • Database Schema Evolution Roadmap: Critical for large-scale applications where migrations must run in a specific order (e.g., foreign key constraints, plugin initialization sequences).
  • Build vs. Buy: Avoids reinventing topological sorting for migrations, reducing technical debt. MIT license allows seamless integration without vendor lock-in.
  • Use Cases:
    • Plugin Ecosystems: Ensures plugins (e.g., PaymentPlugin, InventoryPlugin) migrate in the correct order relative to core or other plugins.
    • Multi-Tenant SaaS: Isolates tenant-specific migrations while maintaining dependency chains.
    • Legacy System Modernization: Safely refactors monolithic migrations into modular, dependency-aware bundles.

When to Consider This Package

  • Adopt When:

    • Your project uses Doctrine Migrations and requires non-linear migration ordering (e.g., plugins with interdependencies).
    • You’re building a composable architecture (e.g., Symfony bundles, plugins, or microservices with shared databases).
    • Your team prioritizes reproducible, deterministic migration execution over manual ordering.
    • You’re on Symfony 6–8.x and PHP 8.1+ (active maintenance aligns with LTS versions).
  • Look Elsewhere If:

    • Your migrations are trivially sequential (no dependencies between bundles/plugins).
    • You’re using non-Doctrine migration tools (e.g., Flyway, Liquibase).
    • Your team lacks Symfony/Doctrine expertise (steep learning curve for topological sorting).
    • You need real-time migration validation (this package focuses on ordering, not validation).

How to Pitch It (Stakeholders)

For Executives:

"This package solves a critical pain point in scalable PHP applications: migration dependency hell. Imagine plugins like ‘Stripe Payments’ or ‘Inventory Tracking’ failing to deploy because their database migrations ran out of order. This tool automates topological sorting—ensuring migrations execute in the correct sequence—while keeping our architecture modular. It’s a low-risk, high-reward investment: minimal dev effort, but it prevents costly deployment failures in production. Given our roadmap to support [X plugins] and [multi-tenancy], this is a foundational enabler."

For Engineering:

*"This bundle replaces Doctrine’s default migration comparator with a topological sorter and adds container-aware version factories. Key benefits:

  • No more manual migrate --order hacks: Dependencies are declared in config (e.g., PluginA\Migrations → Core\Migrations).
  • Plugin-friendly: Bundles can define their own migration dependencies via PrependExtensionInterface.
  • Future-proof: Actively maintained for Symfony 6–8.x and PHP 8.1+. Tradeoff: Requires upfront config for dependencies, but eliminates flaky migration pipelines long-term. Recommendation: Pilot in [PluginX] to validate before full adoption."*

Action Item: "Let’s prototype this in [Staging] by Q3 to test with our [PluginA] and [PluginB] migration chains."

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.
terminal42/code-quality-tools
codifyo/ts-generator-bundle
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky