在js中使用microorm迁移



我使用命令mikro-orm migration:create遇到了问题。控制台显示Error: MikroORM config file not found in ['./dist/mikro-orm.config.js', './mikro-orm.config.js']。我的app.module看起来像这样:

@Module({
imports: [
ConfigModule.forRoot({ isGlobal: true }),
MikroOrmCoreModule.forRootAsync({
useFactory: (configService: ConfigService) => ({
entitiesTs: [`./shared/db/entities`],
entities: [`./dist/shared/db/entities`],
user: configService.get<string>('DB_NAME'),
password: configService.get<string>('DB_PASSWORD'),
dbName: configService.get<string>('DB_NAME'),
port: configService.get<number>('DB_PORT'),
type: 'postgresql',
migrations: {
tableName: 'migrations',
path: `./dist/shared/db/migrations`,
pathTs: `./shared/db/entities`,
glob: '!(*.d).{js,ts}',
transactional: true,
allOrNothing: true,
emit: 'ts',
},
}),
inject: [ConfigService],
}),
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}

我也试图用相同的设置创建mikro-orm.config文件,但随后控制台显示我像Error: No entities discovered一样的东西。我尝试过在所有相关字段(实体,实体,路径,路径)中定义路径的不同方法,例如在path中使用*/__dirname/process.pwd(),但它没有帮助。

只保留mikro-orm.config.ts文件中的配置,配置ORM以查找文档中描述的配置(即package.json中的configPathsuseTsNode),然后您可以在app.module中使用此配置。t,只要导入它并传播到你现在有选项的地方。然后,您可以使用npx mikro-orm debug命令来检查路径如何查找ORM。

import config from './mikro-orm.config';
@Module({
imports: [
ConfigModule.forRoot({ isGlobal: true }),
MikroOrmCoreModule.forRootAsync({
useFactory: (configService: ConfigService) => ({
...config,
}),
inject: [ConfigService],
}),
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}

这样,你就可以为CLI和你的应用程序获得一个单一的真实来源,所以你可以使用CLI轻松地调试配置。

最新更新