Migration 生成迁移不需要';我看不到我的连接
我把与数据库的连接作为一个单独的模块Migration 生成迁移不需要';我看不到我的连接,migration,nestjs,typeorm,Migration,Nestjs,Typeorm,我把与数据库的连接作为一个单独的模块 @Module({ imports: [ TypeOrmModule.forRootAsync({ imports: [ConfigModule], inject: [ConfigService], useFactory: configService => ({ type: configService.get('DATABAS
@Module({
imports: [
TypeOrmModule.forRootAsync({
imports: [ConfigModule],
inject: [ConfigService],
useFactory: configService => ({
type: configService.get('DATABASE_TYPE'),
host: configService.get('DATABASE_HOST'),
port: configService.get('DATABASE_PORT'),
username: configService.get('DATABASE_USERNAME'),
password: configService.get('DATABASE_PASSWORD'),
database: configService.get('DATABASE_NAME'),
entities: ['./dist/**/*.entity.{js,ts}'],
synchronize: false,
migrationsRun: true,
logging: true,
migrations: ['./dist/modules/database/migration/*.{js,ts}'],
cli: {
migrationsDir: 'src/modules/database/migration',
},
}),
}),
],
})
export class DatabaseModule {}
这在docker容器中运行良好。但是当我想要运行迁移的创建时,我得到了错误
Error: No connection options were found in any orm configuration files.
at ConnectionOptionsReader.<anonymous> (/Users/user1/Documents/app/src/connection/ConnectionOptionsReader.ts:43:19)
在命令中,我没有指定连接konyig,据我所知,orm找不到我的连接配置,我如何告诉我?问题是TypeORM的CLI不知道在您的嵌套应用程序中,您使用
TypeormModule来配置连接。CLI希望配置采用中描述的以下格式之一
因此,解决问题的最简单方法是创建一个名为ormconfig.js
的文件,并在此处设置连接配置。像这样:
module.exports = {
"type": "mysql",
"host": "localhost",
"port": 3306,
"username": "test",
"password": "test",
"database": "test"
}
假设您的configService
读取环境变量中的值,您还可以执行以下操作:
module.exports = {
"type": "mysql",
"host": process.env.DB_HOST,
"port": process.env.DB_PORT,
"username": process.env.DB_USERNAME,
"password": process.env.DB_PASSWORD,
"database": process.env.DB_DATABASE
}
因此,配置与应用程序中的配置相同
module.exports = {
"type": "mysql",
"host": process.env.DB_HOST,
"port": process.env.DB_PORT,
"username": process.env.DB_USERNAME,
"password": process.env.DB_PASSWORD,
"database": process.env.DB_DATABASE
}