{
"dependencies": {
"@medusajs/admin-bundler": "2.12.3",
"@medusajs/admin-sdk": "2.12.3",
"@medusajs/cli": "2.12.3",
"@medusajs/framework": "2.12.3",
"@medusajs/medusa": "2.12.3",
"@mikro-orm/core": "6.4.16",
"@mikro-orm/knex": "6.4.16",
"@mikro-orm/migrations": "6.4.16",
"@mikro-orm/postgresql": "6.4.16"
}
}
v22.21.1
psql
macOS 26.2
cli issue
medusa plugin:db:generate crashes when a TypeScript enum is exported from any file
inside a plugin's models/ directory.
The entity discovery logic in
packages/medusa/src/commands/plugin/db/generate.ts
uses MetadataStorage.getMetadataFromDecorator, which always returns a truthy
EntityMetadata object for any value with a .name property — including enums.
This causes enums to be treated as MikroORM entities and leads to a crash.
medusa plugin:db:generate should ignore TypeScript enums during entity discovery,
just like the regular db:generate command does.
Only valid DML entities and MikroORM entity classes should be treated as database
entities. Exporting enums from files inside models/ should not cause the migration
generator to crash.
MetadataStorage.getMetadataFromDecorator() always returns a truthy
EntityMetadata object for any value with a .name property — including
TypeScript enums.
Because plugin:db:generate relies on this method to detect entities, enums pass
the filter and are incorrectly treated as MikroORM entities. MikroORM then crashes
when attempting to process the enum as a database entity.