Невозможно создать миграцию или любую другую команду интерфейса командной строки MikroORM из-за непредвиденной ошибки в файле конфигурации.
Это текущие версии MikroORM и NestJS, используемые в моем package.json.
"@mikro-orm/core": "^5.5.3",
"@mikro-orm/mysql": "^5.5.3",
"@mikro-orm/nestjs": "^5.1.2",
"@nestjs/common": "^9.0.0",
"@nestjs/core": "^9.0.0",
"@nestjs/platform-express": "^9.0.0",
"@mikro-orm/cli": "^5.5.3",
"@nestjs/cli": "^9.0.0",
"@nestjs/schematics": "^9.0.0",
"@nestjs/testing": "^9.0.0",
"ts-node": "^10.9.1",
Интерфейс командной строки MikroORM был настроен в package.json
для использования ts-node
, согласно официальной документации.
"mikro-orm": {
"useTsNode": true,
"configPaths": [
"./src/config/mikro-orm.config.ts",
"./dist/config/mikro-orm.config.js"
]
}
А это мой mikro-orm-config.ts
файл
export const mikroOrmConfig: Options = {
type: 'mysql',
host: '127.0.0.1',
port: 3306,
dbName: 'market_store',
user: 'root',
password: 'admin',
entities: ['dist/**/*.entity.js'],
entitiesTs: ['src/**/*.entity.ts'],
migrations: {
path: 'dist/migrations',
pathTs: 'src/migrations',
},
};
Как видите, был указан type
, но когда я запускаю любую команду MikroORM CLI, я получаю следующую ошибку:
Error: No platform type specified, please fill in `type` or provide custom driver class in `driver` option. Available platforms types: [
'mongo',
'mysql',
'mariadb',
'postgresql',
'sqlite',
'better-sqlite'
]
Ниже приведен вывод моей команды npx mikro-orm debug
Current MikroORM CLI configuration
- dependencies:
- mikro-orm 5.5.3
- node 18.12.1
- typescript 4.9.3
- package.json found
- ts-node enabled
- searched config paths:
- C:/Users/DanielMendesSechisnk/Projects/nestjs-rest-api/src/config/mikro-orm.config.ts (found)
- C:/Users/DanielMendesSechisnk/Projects/nestjs-rest-api/dist/config/mikro-orm.config.js (found)
- C:/Users/DanielMendesSechisnk/Projects/nestjs-rest-api/src/mikro-orm.config.ts (not found)
- C:/Users/DanielMendesSechisnk/Projects/nestjs-rest-api/mikro-orm.config.ts (not found)
- C:/Users/DanielMendesSechisnk/Projects/nestjs-rest-api/dist/mikro-orm.config.js (not found)
- C:/Users/DanielMendesSechisnk/Projects/nestjs-rest-api/mikro-orm.config.js (not found)
- configuration not found (No platform type specified, please fill in `type` or provide custom driver class in `driver` option. Available platforms types: [
'mongo',
'mysql',
'mariadb',
'postgresql',
'sqlite',
'better-sqlite'
])
Я создал свои сущности вручную в своей базе данных, чтобы увидеть, может ли приложение подключиться к базе данных за пределами интерфейса командной строки MikroORM, и это удалось, я смог выполнить несколько операций CRUD в своей базе данных, при этом она правильно обновилась.
Я даже пытался использовать более низкую версию MikroORM, например 5.0.3, так как в официальной документации есть рабочий пример с его использованием, но та же ошибка сохранялась.
Что мне не хватает?
Используйте экспорт по умолчанию в файле конфигурации.
Вау, это такая маленькая деталь, она решила мою проблему, спасибо, что заметили и нашли время ответить