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

Pimcore Simple Migration Laravel Package

gal-digital-gmbh/pimcore-simple-migration

A lightweight migration helper for Pimcore that lets you version and apply database or data changes through simple, readable PHP migration files, with a straightforward CLI workflow for running and rolling back migrations across development and production environments.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Framework fit — the framing is off. Despite the brief calling this a "Laravel/PHP package," gal-digital-gmbh/pimcore-simple-migration targets Pimcore, not Laravel. Pimcore is a Symfony-based PIM/DXP/MDM platform; this is a Composer-installable Pimcore bundle. That distinction drives the entire assessment:

  • If the target application is Laravel, this package has zero architectural fit and should be rejected without further evaluation.
  • If the target application is Pimcore (10.x/11.x on Symfony 5.4/6.4), it is directionally in-scope — it appears to be a thin ergonomic wrapper over Doctrine Migrations intended to reduce boilerplate when authoring and running schema migrations for Pimcore bundles and custom data-object storage.

Technical risk is dominated by the supply-chain signals, not the code. Zero stars, zero dependents, and a composite score of 0 mean there is no community validation, no downstream usage to learn from, and no evidence that the package is actively exercised outside its author's own projects. For a component whose job is to mutate production database schema on a system of record, that is a materially elevated risk profile. Migration tooling sits on the highest-blast-radius path in any deployment pipeline.

Key questions to resolve before any commitment:

  1. Does it wrap doctrine/doctrine-migrations-bundle, or does it ship its own migration runner and metadata table? Overlap with an existing Doctrine migrations setup is a conflict risk.
  2. Which Pimcore major versions are actually supported, and is that expressed in composer.json constraints or only in prose?
  3. Does it handle Pimcore-specific constructs — class definitions, field collections, object bricks, translations — or only raw SQL/Doctrine schema diffs? Pimcore's class definitions are code-as-config and drift from the DB schema independently of migrations.
  4. Are down() / rollback paths supported and tested, or is it forward-only?
  5. What is the release cadence and commit recency? Last commit date and tagged releases are the cheapest proxy for maintained vs. abandoned.
  6. Is there CI and a test suite, or is this a single-developer utility published to Packagist?
  7. Does it clear Pimcore's caches and definition caches after applying, or is that a manual step?

Integration Approach

Stack fit. Only proceed if the host application is Pimcore. Confirm the matrix explicitly: Pimcore major version, PHP version (8.1–8.3 for Pimcore 11), Symfony version, and the doctrine/migrations constraint it pulls transitively. Pin all of these; do not rely on floating constraints for a schema-mutating dependency.

Migration path. Two scenarios:

  • Greenfield / no existing migration tooling: this is a low-friction adoption — a Composer require plus bundle registration in config/bundles.php (or bundles.php on older skeletons). Assess whether the ergonomic gain justifies taking on an unmaintained dependency.
  • Already using doctrine-migrations-bundle directly: treat this as a replacement decision, not an addition. Two migration runners or two metadata tables in one project is a defect waiting to happen. Audit for overlap first; the likely outcome is "keep Doctrine directly, borrow any useful conventions."

Compatibility checks. Read composer.json before installing: require constraints, conflict entries, autoload config, and whether it declares a bundle class. Verify it does not hardcode a migrations table name that collides with an existing one. Verify it does not assume a single DB connection — Pimcore deployments sometimes split admin/web or use read replicas.

Sequencing (gate each step):

  1. Source audit — commit history, tags, open issues, CI status, test coverage. Decision point: if there are no commits in 12+ months, move directly to a fork-and-vendor evaluation.
  2. Sandbox install — throwaway Pimcore skeleton, run install and any bundled commands against an empty DB. Confirms it installs cleanly and doesn't break the Pimcore console.
  3. Functional spike on dev — one additive migration (new table or column) and, critically, one rollback. If rollback is broken, this is forward-only tooling and must be documented as such.
  4. Staging dry run with a production-shaped snapshot — measure runtime and lock behavior on realistic data volume.
  5. Production rollout — gated behind a verified backup and a written manual rollback procedure, independent of the tool's own down().

Operational Impact

Maintenance. Assume you will own this. With zero dependents and no visible maintainer leverage, the realistic posture is fork-and-vendor into an internal namespace, or pin an exact version and accept that you cannot take upstream fixes. Budget a small but real ongoing cost: Pimcore/Symfony major upgrades will require you to patch the bundle yourself, and migration tooling tends to break loudly on ORM/DBAL bumps.

Support. Upstream support is GitHub issues on a repository with no community — effectively self-service. If GAL Digital offers commercial engagement, that changes the calculus materially and is worth asking about directly.

Scaling. This is a deployment-time tool, not a runtime component, so it imposes no request-path overhead. The scaling concern is migration execution against large Pimcore datasets: ALTER TABLE on multi-million-row object store tables can lock for minutes, and a wrapper that runs migrations in a single transaction may behave differently than expected on MySQL, where DDL is not transactional. Test on production-scale data before trusting it in a release window.

Failure modes to plan for:

  • Partial application — a multi-statement migration that fails midway leaves schema in an undefined state; MySQL's non-transactional DDL makes this unrecoverable without a restore.
  • Missing or untested down() — rollback is the single most likely thing to be broken in a small utility package.
  • Definition/schema drift — Pimcore class definitions live in code and can diverge from the DB; migrations alone do not reconcile them. This is a Pimcore-wide concern the package probably does not solve.
  • Stale caches — if the package doesn't flush Pimcore caches/definition caches post-migration, you get confusing runtime errors that look like code bugs.
  • Concurrent or out-of-order execution — lock table behavior across parallel deploy jobs.
  • No dry-run / SQL preview — if absent, add a manual --dry-run-equivalent by diffing generated SQL in staging first.

Ramp-up. Low for engineers already fluent in Symfony and Doctrine Migrations — the API surface is small and the concept is familiar. The actual learning cost is Pimcore data-model literacy: understanding which changes belong in a migration versus a class definition versus a config file. That knowledge is a prerequisite regardless of which migration tool you choose, so the package itself is not the ramp-up bottleneck.

Bottom line for the TPM: the package is a convenience wrapper around a capability you already have via Doctrine Migrations, published with no adoption signal, in a framework that may not match the stated stack. The recommendation is not to adopt it as a dependency of record — instead, validate the stack assumption first, then either use doctrine-migrations-bundle directly or vendor a fork only if the ergonomic delta is demonstrably worth the maintenance carry.

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.
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast