티스토리 뷰
'string' 형식은 'DatabaseType' 형식에 할당할 수 없습니다.ts(2322)
TypeORM을 사용하면서 development 환경에선 sqlite를 사용하고 staging 환경에서는 postgres, production 환경에서는 aurora-postgresql을 사용하고 싶었다
그래서 각각의 환경 변수의 파일인 .development.env, .staging.env, .production.env 에 DATABASE_TYPE으로 구분해서 저장하고 싶었다.
그러나 TypeORM의 모듈인 TypeOrmModule에서 forRoot에 데이터베이스 타입 속성값인 type은 string이 아닌 DatabaseType이란 typeorm 라이브러리가 정의한 타입이다
// DatabaseType.d.ts
/**
* Database type.
*/
export declare type DatabaseType = "mysql" | "postgres" | "cockroachdb" | "sap" | "mariadb" | "sqlite" | "cordova" | "react-native" | "nativescript" | "sqljs" | "oracle" | "mssql" | "mongodb" | "aurora-mysql" | "aurora-postgres" | "expo" | "better-sqlite3" | "capacitor" | "spanner";
TypeORM은 위와 같이 19개의 데이터베이스만 지원한다.
그래서 환경변수에서 그대로 데이터베이스 타입을 가져오면 환경변수는 string 타입으로 사용되기 때문에 에러가 발생했다.
아래와 같이 형변환을 해주면 호출 가능
...
{
type: process.env.DATABSE_TYPE as DatabaseType,
}
...
에러가 나지 않고 잘 호출된다
'Node.js > TypeORM' 카테고리의 다른 글
TypeORM Config Entity 삽질 (0) | 2022.08.18 |
---|
댓글