根据 Typeorm 中的环境设置配置

时间:2021-07-23 06:20:06

标签: javascript postgresql orm nestjs typeorm

我正在尝试在 Nestjs 中为两个环境设置配置:developmenttest

为此,我分别创建了两个名为 .env.dev.env.test 的环境文件。

现在在我的项目中,我有一个配置目录,其中有一个名为 database.config.ts 的文件,其中包含所有 typeorm 选项作为对象。

import * as path from 'path';
import * as dotenv from 'dotenv';

const env = process.env.NODE_ENV || 'dev';
const dotenv_path = path.resolve(process.cwd(), `.env.${env}`);
const result = dotenv.config({ path: dotenv_path });
if (result.error) { /* do nothing */ }

export const DatabaseConfig = {
  type: 'postgres' as any,
  driver: 'postgres',
  database: process.env.DB_DATABASE,
  port: parseInt(process.env.DB_PORT),
  username: process.env.DB_USER,
  password: process.env.DB_PASSWORD,
  host: process.env.DB_HOST,
  synchronize: false,
  logging: true,
  entities: ["dist/**/*.entity.js"],
  seeds: ["src/database/seeds/*.ts"],
  migrations: ["./dist/database/migrations/*.js"],
  cli: {
      "entitiesDir": "dist",
      "migrationsDir": "./src/database/migrations"
  }
}

module.exports = DatabaseConfig

现在在我的 app.module.ts 中,我正在导入此文件并将其传递给 typeormModule,如下所示:

@Module({
  imports: [
    ConfigModule.forRoot({
      isGlobal: true,
      validationSchema: Joi.object({
        NODE_ENV: Joi.string()
          .valid('development', 'production', 'test')
          .default('development'),
        PORT: Joi.number().default(3030),
      }),
    }),
    TypeOrmModule.forRoot(DatabaseConfig),
    

这给了我一个错误

Error: No connection options were found in any orm configuration files.

0 个答案:

没有答案