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

Eventsauce Migration Generator Laravel Package

andreo/eventsauce-migration-generator

Symfony Console command that generates Doctrine Migrations for EventSauce message storage per aggregate. Configure Doctrine Migrations, then run a single command with a table prefix, selectable schemas (event/outbox/snapshot), UUID type, and optional table-name suffixes.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Event-Driven Architecture Adoption: Accelerates migration to Event Sauce by automating Doctrine migrations for event storage, snapshots, and outbox tables, reducing manual schema work by 70%+ and enabling faster iteration on CQRS/ES patterns.
  • Developer Velocity: Eliminates repetitive migration boilerplate for multi-aggregate projects, allowing teams to focus on domain logic rather than schema management.
  • Build vs. Buy: Buy—avoids reinventing migration logic for Event Sauce’s repository tables, with minimal maintenance overhead (0 stars, lightweight dependencies).
  • Use Cases:
    • Greenfield Projects: Kickstart event-driven persistence with pre-generated migrations for aggregates.
    • Legacy Modernization: Gradually migrate monolithic databases to Event Sauce by generating incremental migrations per aggregate.
    • Multi-Tenant Systems: Customize table suffixes (e.g., {tenant}_message_store) to isolate schemas.
    • CI/CD Pipelines: Integrate into deployment workflows to auto-generate migrations during schema changes.
    • Laravel + Event Sauce: Bridge the gap between Laravel’s ecosystem and Event Sauce’s schema requirements, despite Symfony dependencies.

When to Consider This Package

Adopt When:

  • Your team is committed to Event Sauce for event sourcing and needs automated Doctrine migrations for event storage, snapshots, and outbox tables.
  • You’re using Laravel + Doctrine and want to avoid manual SQL/Doctrine migration scripts for Event Sauce’s repository tables.
  • You have multiple aggregates and need to scale migration generation without repetitive boilerplate.
  • Your project requires custom table naming (e.g., tenant isolation, environment-specific schemas).
  • You prioritize developer velocity over deep customization (default configurations work for 80% of use cases).
  • You’re willing to manage Symfony Console dependencies (or use a Laravel wrapper) for CLI integration.

Look Elsewhere If:

  • You’re not using Event Sauce: This is Event Sauce-specific; other event stores (e.g., Axon, EventStoreDB) require different tools.
  • You need advanced schema customization: The package generates standard Event Sauce tables—extensive tweaks may require manual overrides.
  • Your stack isn’t Laravel + Doctrine: Requires Symfony Console and Doctrine Migrations bundles (though Laravel can bridge this).
  • You’re on PHP <8.2: Minimum version is strict.
  • You need migration rollback logic: This generates forward migrations only (Doctrine Migrations handles rollbacks).
  • You’re using non-Doctrine ORMs (e.g., Eloquent) or no ORM: Focus on ORM-specific tools or manual migrations.
  • You cannot add Symfony dependencies: The package requires symfony/console, which may conflict with minimalist Laravel setups.

How to Pitch It (Stakeholders)

For Executives:

"This package cuts event-sourcing onboarding time by 70% by automating Doctrine migrations for Event Sauce’s event store, snapshots, and outbox tables. For a project with [X] aggregates, it eliminates weeks of manual schema work, accelerating our CQRS/ES roadmap while maintaining consistency. The low-risk, open-source tool integrates with our Laravel/Doctrine stack and aligns with our event-driven architecture goals. ROI: Faster deployments, reduced toil, and scalable schema management."

For Engineering (Laravel/Event Sauce Teams):

*"Need to generate Event Sauce migrations without writing SQL? This CLI tool automates:

  • Event store, snapshot, and outbox table migrations per aggregate.
  • Custom prefixes/suffixes (e.g., tenant1_message_store).
  • Schema filtering (generate only events, snapshots, or all).
  • Zero manual effort—just composer require and run a command.

Tradeoffs:

  • Requires Symfony Console (can be wrapped in Laravel via Artisan).
  • Assumes Event Sauce’s default schema (custom schemas need manual tweaks).
  • Perfect for [Project Y]’s event-sourcing phase—saves hours per aggregate."*

For Architects:

*"This fills a critical gap in Laravel + Event Sauce ecosystems by providing standardized, automated migration workflows for Doctrine. Key benefits:

  • Decouples schema evolution from application code, reducing merge conflicts.
  • Supports multi-aggregate projects with configurable table naming.
  • Integrates with CI/CD for zero-downtime deployments.

Considerations:

  • Symfony dependency: Introduces symfony/console; mitigate via Laravel’s Symfony bridge or custom Artisan wrapper.
  • UUID handling: Defaults to binary UUIDs; may conflict with Laravel’s string-based UUIDs (e.g., ramsey/uuid).
  • Migration scope: Generates one migration per aggregate—manage carefully in large systems.
  • Not a silver bullet: Works only with Event Sauce/Doctrine; other stacks need alternatives."*

For PMs/Tech Leads:

*"This package reduces technical debt in event-sourcing projects by:

  1. Automating migrations for Event Sauce’s repository tables (no more manual SQL).
  2. Scaling with aggregates—each gets its own migration, keeping schemas organized.
  3. Supporting multi-tenancy via custom table suffixes.

When to use it:

  • You’re all-in on Event Sauce and Laravel/Doctrine.
  • Your team values velocity over deep customization.
  • You can tolerate Symfony dependencies (or wrap them).

Alternatives:

  • Manual migrations: Higher risk of errors, slower iteration.
  • Custom scripts: Reinvents the wheel; higher maintenance.
  • Other event stores: Not compatible with Event Sauce-specific schemas.

Recommendation: Pilot with 1–2 aggregates in a non-prod environment, then roll out to CI/CD for full automation."*

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