해결된 질문
작성
·
278
0
import { ApolloDriver, ApolloDriverConfig } from '@nestjs/apollo';
import { Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
import { GraphQLModule } from '@nestjs/graphql';
import { TypeOrmModule } from '@nestjs/typeorm';
import { BoardsModule } from './apis/boards/boards.module';
@Module({
imports: [
BoardsModule,
ConfigModule.forRoot(),
GraphQLModule.forRoot<ApolloDriverConfig>({
driver: ApolloDriver,
autoSchemaFile: 'src/commons/graphql/schema.gql',
}),
TypeOrmModule.forRoot({
type: process.env.DATABASE_TYPE as 'mysql',
host: process.env.DATABASE_HOST,
port: Number(process.env.DATABASE_PORT),
username: process.env.DATABASE_USERNAME,
password: process.env.DATABASE_PASSWORD,
database: process.env.DATABASE_DATABASE, // env파일에서 수정
entities: [__dirname + '/apis/**/*.entity.*'], // 수정
synchronize: true,
logging: true,
}),
],
})
export class AppModule {}
위와같이 코드 작성했고
터미널에서 yarn start:dev 할경우
아래와 같이 오류가 떠서 작동이 되지않습니다.
어떻게하면 될까요?
[Nest] 13226 - 2024. 03. 15. 오전 10:07:01 ERROR [TypeOrmModule] Unable to connect to the database. Retrying (1)...
MissingDriverError: Wrong driver: "undefined" given. Supported drivers are: "aurora-mysql", "aurora-postgres", "better-sqlite3", "capacitor", "cockroachdb", "cordova", "expo", "mariadb", "mongodb", "mssql", "mysql", "nativescript", "oracle", "postgres", "react-native", "sap", "sqlite", "sqljs", "spanner".
at DriverFactory.create (/home/seasnake/CODECAMP-BACKEND-CLASS/class/section10/10-01-mysql-relation/src/driver/DriverFactory.ts:72:23)
at new DataSource (/home/seasnake/CODECAMP-BACKEND-CLASS/class/section10/10-01-mysql-relation/src/data-source/DataSource.ts:149:43)
at createTypeormDataSource (/home/seasnake/CODECAMP-BACKEND-CLASS/class/section10/10-01-mysql-relation/node_modules/@nestjs/typeorm/dist/typeorm-core.module.js:164:23)
at /home/seasnake/CODECAMP-BACKEND-CLASS/class/section10/10-01-mysql-relation/node_modules/@nestjs/typeorm/dist/typeorm-core.module.js:169:36
at Observable._subscribe (/home/seasnake/CODECAMP-BACKEND-CLASS/class/section10/10-01-mysql-relation/node_modules/rxjs/src/internal/observable/defer.ts:55:15)
at Observable._trySubscribe (/home/seasnake/CODECAMP-BACKEND-CLASS/class/section10/10-01-mysql-relation/node_modules/rxjs/src/internal/Observable.ts:244:19)
at /home/seasnake/CODECAMP-BACKEND-CLASS/class/section10/10-01-mysql-relation/node_modules/rxjs/src/internal/Observable.ts:234:18
at Object.errorContext (/home/seasnake/CODECAMP-BACKEND-CLASS/class/section10/10-01-mysql-relation/node_modules/rxjs/src/internal/util/errorContext.ts:29:5)
at Observable.subscribe (/home/seasnake/CODECAMP-BACKEND-CLASS/class/section10/10-01-mysql-relation/node_modules/rxjs/src/internal/Observable.ts:220:5)
at subscribeForRetryWhen (/home/seasnake/CODECAMP-BACKEND-CLASS/class/section10/10-01-mysql-relation/node_modules/rxjs/src/internal/operators/retryWhen.ts:74:25)
답변 2
0
안녕하세요! elgh1234님!
해당 에러메시지를 확인해 보니, 지원되는 데이터베이스가 없다고 하는 것 같아요!
다시말해, process.env.DATABASE_TYPE 부분을 읽어오지 못하였다는 뜻이에요!
따라서, .env 파일에 DATABASE_TYPE 부분에 오타가 있는지 확인이 필요해 보여요!
0
안녕하세요, 인프런 AI 인턴입니다.
오류 메시지는 TypeOrmModule
이 데이터베이스에 연결할 수 없다는 내용입니다. 그리고 MissingDriverError
라는 오류는 지원되는 드라이버 중에서 “undefined”로 드라이버가 지정되어 있지 않다는 의미입니다. 즉, 데이터베이스 드라이버가 환경변수에서 올바르게 설정되지 않아 발생한 문제로 보입니다.
첫 번째로 해볼 수 있는 것은 모듈을 임포트하는 부분에서 사용된 환경 변수들이 올바르게 설정되었는지 확인하는 것입니다. .env
파일이나 환경변수 설정 부분에 DATABASE_TYPE
이 올바로 설정되어 있는지, 그리고 오타는 없는지 확인해주세요. 예를 들어, mysql
이라고 설정해야 할 곳에 msyql
처럼 잘못 입력되지 않았는지 검토해 보시기 바랍니다.
또한, 환경 변수를 불러오는 과정에서 문제가 발생할 수도 있습니다. 예를 들어, ConfigModule.forRoot()
호출 시 환경 변수 파일의 위치나 이름을 명시하지 않았을 때 발생할 수 있습니다. 만약 사용하는 환경 변수 파일이 특정 위치에 있거나 이름이 .env
가 아닐 경우, ConfigModule
설정에서 해당 위치와 이름을 명시해야 합니다.
마지막으로, 환경 변수를 로드한 후에 응용 프로그램이 이를 제대로 인식하고 있는지 검증하기 위해 응용 프로그램을 다시 시작해보는 것이 좋습니다. 설정이 변경된 후 반드시 응용 프로그램을 재시작하여 변경 사항을 적용해야 합니다.
이러한 점들을 검토한 후에도 문제가 해결되지 않는다면, 환경 설정 파일의 내용이나 구체적인 설정 방법 등을 다시 한 번 점검해보시기 바랍니다.