728x90
문제
EntityMetadataNotFoundError: No metadata for "ProductEntity" was found.
at DataSource.getMetadata (/Users/thursdaycurry/Desktop/git-thursdaycurry/project/1.stockls/stockls/src/data-source/DataSource.ts:438:30)
at Repository.get metadata [as metadata]
...
ProductEntity, DataSource 키워드를 보니 왠지 DB 문제인거 같았다.
원인
이전에 .env로 환경변수를 관리하다 src/config/orm.config.ts
에 DB config를 따로 빼준 상황이었는데, 옮기는 과정에서 process.env 방식에서 configService.get() 형식으로 수정해주지 않았던 것이 문제의 원인이었다. 이로 인해 nest.js가 DB 환경변수를 제대로 읽지 못하고 있는 상황이었다.
해결
환경변수를 옮기면서 process.env 에서 configService.get()으로 바꿔주었다.
수정 전
import { ConfigModule, ConfigService } from '@nestjs/config';
import {
TypeOrmModuleAsyncOptions,
TypeOrmModuleOptions,
} from '@nestjs/typeorm';
export default class TypeOrmConfig {
static getOrmConfig(configService: ConfigService): TypeOrmModuleOptions {
return {
type: 'postgres',
host: process.env.DB_HOST,
port: 5432,
username: process.env.DB_USERNAME,
password: process.env.DB_PASSWORD,
database: process.env.DB_TITLE,
entities: [__dirname + '/../**/*.entity{.ts,.js}'],
synchronize: true,
...
수정 후
import { ConfigModule, ConfigService } from '@nestjs/config';
import {
TypeOrmModuleAsyncOptions,
TypeOrmModuleOptions,
} from '@nestjs/typeorm';
export default class TypeOrmConfig {
static getOrmConfig(configService: ConfigService): TypeOrmModuleOptions {
return {
type: 'postgres',
host: configService.get('DB_HOST'),
port: 5432,
username: configService.get('DB_USERNAME'),
password: configService.get('DB_PASSWORD'),
database: configService.get('DB_TITLE'),
entities: [__dirname + '/../**/*.entity{.ts,.js}'],
synchronize: true,
...
728x90
'Log > Trouble shoot' 카테고리의 다른 글
Troubleshoot_Ngrinder 테스트 중도 멈춤 문제 (0) | 2023.03.08 |
---|---|
트러블슛_CICD_Github action 배포 시 파일 누락 문제 (1) | 2023.02.23 |
Express.js_body undefined 에러(파싱 문제) (0) | 2023.02.07 |
Express.js_router 경로 오타 이슈(app -> router) (0) | 2023.02.07 |
데이터베이스 컬럼에 대한 논의 (0) | 2023.02.05 |
댓글