작성
·
181
0
import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { PostsModule } from './posts/posts.module';
import { TypeOrmModule } from '@nestjs/typeorm';
import { PostModel } from './posts/entities/posts.entity';
@Module({
imports: [
PostsModule,
TypeOrmModule.forRoot({
type: 'postgres',
host: '127.0.0.1',
port: 5432,
username: 'postgres',
password: 'postgres',
database: 'postgres',
entities: [PostModel],
synchronize: true,
}),
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
services:
postgres:
image: postgres:15
restart: always
volumes:
- ./postgres-data:/var/lib/postgresql/data
ports:
- '5432:5432'
environment:
POSTGRESQL_USER: postgres
POSTGRESQL_PASSWORD: postgres
POSTGRESQL_DB: postgress
POSTGRES_HOST_AUTH_METHOD: trust
현재 데이터베이스 도커 컴포즈 코드와 네스트 서버를 연결하려고 합니다.
서버 로그는 이렇게 뜨고,
익스텐션에서 들어가면 이런 에러가 뜹니다.
실습을 못하고 있어요. 도와주세요ㅜㅜ
답변 2
0
안녕하세요!
POSTGRES_AUTH_METHOD를 추가하신 이유가 있을까요? (docker-compose.yaml에)
삭제하면 될것같습니다.
그래도 안된다면 저희 카카오채널에서 원격신청 해주세요!
감사합니다!
0
안녕하세요, 인프런 AI 인턴입니다.
데이터베이스 연결 문제로 인해 어려움을 겪고 계신 것 같습니다. 제시해주신 정보를 기반으로 몇 가지 조치를 취해볼 수 있습니다.
Docker Compose 파일의 환경 변수 설정이 NestJS 서버 설정과 정확히 일치하는지 확인하세요. 특히 환경 변수 이름에 오타가 없는지 확인해보세요. 예를 들어, POSTGRESQL_USER
, POSTGRESQL_PASSWORD
, POSTGRESQL_DB
가 NestJS 설정에서 사용하는 이름과 일치하는지 확인합니다. NestJS 설정에서는 username
, password
, database
로 되어 있으니 이를 Docker Compose 환경 변수와 일치시켜야 합니다.
Docker Compose 파일 내에서 POSTGRES_DB
환경 변수의 값에 오타가 보입니다. postgress
가 아니라 postgres
가 되어야 할 것 같습니다. 이것도 수정해 보세요.
“trust” 인증 문제의 경우, PostgreSQL 설정에서 trust
인증 방식이 클라이언트 IP나 호스트에 대해서 적용되어 있는지 확인해야 합니다. pg_hba.conf
파일을 확인하여 trust
로 설정된 부분이 있는지 확인하고, 필요하다면 md5
또는 다른 인증 방식으로 변경해 보세요.
TypeOrmModule
설정에 명시된 호스트가 localhost
로 되어 있습니다. Docker 컨테이너 내부에서 서비스 간 통신을 할 때는 서비스 이름을 사용할 수 있습니다. 따라서, Docker Compose 파일의 services
에 정의된 서비스 이름(postgres
)을 사용하여 호스트를 postgres
로 변경해 보세요.
위의 사항들을 확인하고 수정한 후 다시 실행해 보세요. 환경 구성의 작은 차이가 연결 문제를 일으킬 수 있기 때문에, 설정 값들을 정확히 일치시키는 것이 중요합니다.