如何使用postgresql在nest js中设置不同的环境文件
How to setup different environment file in nest js using postgresql
我是这个框架的新手。我使用 ormconfig 文件连接了 PostgreSQL 数据库。但是我需要配置开发环境,生产环境,测试环境。如何实现这种情况。我试图在我的项目中使用配置服务。但始终只连接 .env 文件配置。
development.env
POSTGRES_HOST=127.0.0.1
POSTGRES_PORT="5432"
POSTGRES_USER=postgres
POSTGRES_PASSWORD='*****'
POSTGRES_DATABASE=testdb123
PORT=4000
您可以使用 ormconfig.js 并在其顶部添加如下内容:
require('dotenv').config({
path: '.env.' + process.env.NODE_ENV
})
另一种选择是像这样导入 ConfigModule
:
ConfigModule.forRoot({
load: [config],
envFilePath: '.env.' + process.env.NODE_ENV
})
并为 TypeORM 使用 async configuration:
TypeOrmModule.forRootAsync({
imports: [ConfigModule],
useFactory: (configService: ConfigService) => ({
type: 'mysql',
host: configService.get('POSTGRES_HOST'),
port: +configService.get<number>('POSTGRES_PORT'),
username: configService.get('POSTGRES_USER'),
password: configService.get('POSTGRES_PASSWORD'),
database: configService.get('POSTGRES_DATABASE'),
entities: [__dirname + '/**/*.entity{.ts,.js}'],
synchronize: configService.get('TYPEORM_SYNC'),
}),
inject: [ConfigService],
})
我使用类似的异步配置here。
好吧,我建议将 .env 文件保留在 git 下忽略并拥有一个包含所有可能配置项的 .env.example。
如果你希望每个环境都有一个默认设置,你可以使用类似
https://www.npmjs.com/package/dotenv-defaults
如果您想为每个环境使用 DI 和类型以及 env 文件,请查看 nest configuration module
我是这个框架的新手。我使用 ormconfig 文件连接了 PostgreSQL 数据库。但是我需要配置开发环境,生产环境,测试环境。如何实现这种情况。我试图在我的项目中使用配置服务。但始终只连接 .env 文件配置。
development.env
POSTGRES_HOST=127.0.0.1
POSTGRES_PORT="5432"
POSTGRES_USER=postgres
POSTGRES_PASSWORD='*****'
POSTGRES_DATABASE=testdb123
PORT=4000
您可以使用 ormconfig.js 并在其顶部添加如下内容:
require('dotenv').config({
path: '.env.' + process.env.NODE_ENV
})
另一种选择是像这样导入 ConfigModule
:
ConfigModule.forRoot({
load: [config],
envFilePath: '.env.' + process.env.NODE_ENV
})
并为 TypeORM 使用 async configuration:
TypeOrmModule.forRootAsync({
imports: [ConfigModule],
useFactory: (configService: ConfigService) => ({
type: 'mysql',
host: configService.get('POSTGRES_HOST'),
port: +configService.get<number>('POSTGRES_PORT'),
username: configService.get('POSTGRES_USER'),
password: configService.get('POSTGRES_PASSWORD'),
database: configService.get('POSTGRES_DATABASE'),
entities: [__dirname + '/**/*.entity{.ts,.js}'],
synchronize: configService.get('TYPEORM_SYNC'),
}),
inject: [ConfigService],
})
我使用类似的异步配置here。
好吧,我建议将 .env 文件保留在 git 下忽略并拥有一个包含所有可能配置项的 .env.example。
如果你希望每个环境都有一个默认设置,你可以使用类似 https://www.npmjs.com/package/dotenv-defaults
如果您想为每个环境使用 DI 和类型以及 env 文件,请查看 nest configuration module