Skip to content

fix(medusa): prevent plugin:db:generate crash when model files export enums#15083

Closed
ashif323 wants to merge 1 commit intomedusajs:developfrom
ashif323:fix/plugin-db-generate-enum-crash
Closed

fix(medusa): prevent plugin:db:generate crash when model files export enums#15083
ashif323 wants to merge 1 commit intomedusajs:developfrom
ashif323:fix/plugin-db-generate-enum-crash

Conversation

@ashif323
Copy link
Copy Markdown

What

Prevent plugin:db:generate from crashing when model files export
TypeScript enums alongside MikroORM entities.

Why

MetadataStorage.getMetadataFromDecorator() returns truthy for anything
with a .name property — which compiled TypeScript enums have — so enums
get misidentified as database entities, causing MikroORM to crash during
migration generation.

How

Replace the MetadataStorage check with typeof potentialEntity === "function"
in getEntitiesForModule(). Class constructors are functions; enum objects
are not. This aligns with the same pattern already used in load-internal.ts.

Changes

  • Fix entity detection in packages/medusa/src/commands/plugin/db/generate.ts
  • Add integration test for enum + entity model files
  • Add test fixture plugins-1-with-enum with enum and entity exports

Closes #15077

@ashif323 ashif323 requested a review from a team as a code owner April 10, 2026 16:39
@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented Apr 10, 2026

🦋 Changeset detected

Latest commit: 84c712a

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 77 packages
Name Type
@medusajs/medusa Patch
@medusajs/test-utils Patch
@medusajs/medusa-oas-cli Patch
integration-tests-http Patch
@medusajs/analytics Patch
@medusajs/api-key Patch
@medusajs/auth Patch
@medusajs/caching Patch
@medusajs/cart Patch
@medusajs/currency Patch
@medusajs/customer Patch
@medusajs/file Patch
@medusajs/fulfillment Patch
@medusajs/index Patch
@medusajs/inventory Patch
@medusajs/link-modules Patch
@medusajs/locking Patch
@medusajs/notification Patch
@medusajs/order Patch
@medusajs/payment Patch
@medusajs/pricing Patch
@medusajs/product Patch
@medusajs/promotion Patch
@medusajs/rbac Patch
@medusajs/region Patch
@medusajs/sales-channel Patch
@medusajs/settings Patch
@medusajs/stock-location Patch
@medusajs/store Patch
@medusajs/tax Patch
@medusajs/translation Patch
@medusajs/user Patch
@medusajs/workflow-engine-inmemory Patch
@medusajs/workflow-engine-redis Patch
@medusajs/draft-order Patch
@medusajs/oas-github-ci Patch
@medusajs/cache-inmemory Patch
@medusajs/cache-redis Patch
@medusajs/event-bus-local Patch
@medusajs/event-bus-redis Patch
@medusajs/analytics-local Patch
@medusajs/analytics-posthog Patch
@medusajs/auth-emailpass Patch
@medusajs/auth-github Patch
@medusajs/auth-google Patch
@medusajs/caching-redis Patch
@medusajs/file-local Patch
@medusajs/file-s3 Patch
@medusajs/fulfillment-manual Patch
@medusajs/locking-postgres Patch
@medusajs/locking-redis Patch
@medusajs/notification-local Patch
@medusajs/notification-sendgrid Patch
@medusajs/payment-stripe Patch
@medusajs/core-flows Patch
@medusajs/framework Patch
@medusajs/js-sdk Patch
@medusajs/modules-sdk Patch
@medusajs/orchestration Patch
@medusajs/types Patch
@medusajs/utils Patch
@medusajs/workflows-sdk Patch
@medusajs/http-types-generator Patch
@medusajs/cli Patch
@medusajs/deps Patch
@medusajs/telemetry Patch
@medusajs/admin-bundler Patch
@medusajs/admin-sdk Patch
@medusajs/admin-shared Patch
@medusajs/admin-vite-plugin Patch
@medusajs/dashboard Patch
@medusajs/icons Patch
@medusajs/toolbox Patch
@medusajs/ui-preset Patch
create-medusa-app Patch
medusa-dev-cli Patch
@medusajs/ui Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel
Copy link
Copy Markdown

vercel bot commented Apr 10, 2026

@ashif323 is attempting to deploy a commit to the medusajs Team on Vercel.

A member of the Team first needs to authorize it.

… enums

- Add test coverage for enum exports alongside entities
- Add fixture plugin with enum + entity model
- Closes medusajs#15077
@NicolasGorga
Copy link
Copy Markdown
Contributor

Thank you for your contribution @ashif323 but closing as duplicate of #14718

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: plugin:db:generate crashes when model files export TypeScript enums

2 participants