Skip to content

Entity discovery by absolute path is broken. #1073

@mantas7776

Description

@mantas7776

Describe the bug
When importing entities by path, MikroORM tries to use a relative path, when an absolute path is provided.

Stack trace

(node:21768) UnhandledPromiseRejectionWarning: Error: Cannot find module 'C:/Users/Mantas/Documents/GitHub/projektas/projects/Backend/C:/Users/Mantas/Documents/GitHub/projektas/projects/Backend/src/Application/Model/MikroORM/Companies.ts'
Require stack:
- C:\Users\Mantas\Documents\GitHub\projektas\node_modules\@mikro-orm\core\metadata\MetadataDiscovery.js
- C:\Users\Mantas\Documents\GitHub\projektas\node_modules\@mikro-orm\core\metadata\index.js
- C:\Users\Mantas\Documents\GitHub\projektas\node_modules\@mikro-orm\core\MikroORM.js
- C:\Users\Mantas\Documents\GitHub\projektas\projects\Backend\src\Inversify\bindings.ts
- C:\Users\Mantas\Documents\GitHub\projektas\projects\Backend\src\start.ts
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15)
    at Function.Module._resolveFilename (C:\Users\Mantas\Documents\GitHub\projektas\node_modules\tsconfig-paths\lib\register.js:75:40)
    at Function.Module._load (internal/modules/cjs/loader.js:725:27)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (internal/modules/cjs/helpers.js:88:18)
    at MetadataDiscovery.getEntityClassOrSchema (C:\Users\Mantas\Documents\GitHub\projektas\node_modules\@mikro-orm\core\metadata\MetadataDiscovery.js:644:25)
    at MetadataDiscovery.discoverDirectories (C:\Users\Mantas\Documents\GitHub\projektas\node_modules\@mikro-orm\core\metadata\MetadataDiscovery.js:96:34)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
    at MetadataDiscovery.findEntities (C:\Users\Mantas\Documents\GitHub\projektas\node_modules\@mikro-orm\core\metadata\MetadataDiscovery.js:71:9)
    at MetadataDiscovery.discover (C:\Users\Mantas\Documents\GitHub\projektas\node_modules\@mikro-orm\core\metadata\MetadataDiscovery.js:34:9)
    at Function.init (C:\Users\Mantas\Documents\GitHub\projektas\node_modules\@mikro-orm\core\MikroORM.js:40:24).

To Reproduce
Steps to reproduce the behavior:
Init MikroORM with following settings:

const mikro = await MikroORM.init({
        entities: [`${__dirname}/../Application/Model/MikroORM/*.js`],
        entitiesTs: [`${__dirname}/../Application/Model/MikroORM/*.ts`],
        dbName: config.POSTGRES_DATABASE,
        type: "postgresql",
        clientUrl: `postgresql://${config.POSTGRES_USER}:${config.POSTGRES_PASSWORD}@${config.POSTGRES_HOST}:${config.POSTGRES_PORT}`,
        metadataProvider: TsMorphMetadataProvider,
        debug: true,
        loadStrategy: LoadStrategy.JOINED,
});

console.log(`${__dirname}/../Application/Model/MikroORM/*.js`)
is
C:\Users\Mantas\Documents\GitHub\projektas\projects\Backend\src\Inversify/../Application/Model/MikroORM/**/*.ts

While entitiesTs: "./src/Application/Model/MikroORM/*.ts" works.

Expected behavior
Should load by absolute path instead of adding a relative path to the absolute path.

Additional context
None

Versions
"typescript": "3.9.6",
"@mikro-orm/core": "4.2.3",
"@mikro-orm/postgresql": "4.2.3"

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions