next.js 15 와 도커 세팅방법

프로젝트전공부·2025년 1월 25일

현재 PostgreSQL는 정상적으로 실행되고 있으며, 데이터베이스도 준비된 상태입니다. 그러나 DATABASE_URL을 통해 Prisma가 데이터베이스와 통신하는 데 문제가 발생했을 가능성이 있습니다. 아래 단계를 따라 문제를 해결해보세요.

  1. DATABASE_URL 확인
    DATABASE_URL의 값이 올바른지 확인하세요. 특히 다음 항목들을 확인해야 합니다:

유저 이름: doumi가 PostgreSQL 데이터베이스의 사용자로 등록되어 있어야 합니다.
비밀번호: randompassword가 실제로 doumi 사용자에 설정된 비밀번호인지 확인하세요.
호스트: localhost에서 PostgreSQL에 접속 가능한지 확인하세요.
포트 번호: PostgreSQL의 기본 포트는 5432입니다. 변경되지 않았다면 그대로 사용합니다.
데이터베이스 이름: mydb가 실제 데이터베이스 이름과 일치해야 합니다.
2. PostgreSQL에 직접 접속 테스트
Docker 컨테이너 내부에서 PostgreSQL에 직접 접속해 DATABASE_URL이 올바른지 확인하세요:

PostgreSQL CLI 접속:

bash
복사
편집
docker exec -it helper-db psql -U doumi -d mydb
위 명령이 성공하면, PostgreSQL 사용자와 데이터베이스 설정이 올바르다는 뜻입니다.

비밀번호가 틀리거나 접속 오류가 발생하면, PostgreSQL에서 사용자를 다시 설정해야 합니다.

  1. PostgreSQL 사용자 및 데이터베이스 설정
    만약 위 단계에서 접속 오류가 발생한다면, 다음 명령을 실행하여 PostgreSQL에서 사용자와 데이터베이스를 설정하세요:

컨테이너 내부로 접속:

bash
복사
편집
docker exec -it helper-db bash
PostgreSQL에 postgres 사용자로 접속:

bash
복사
편집
psql -U postgres
사용자 및 데이터베이스 생성:

sql
복사
편집
CREATE USER doumi WITH PASSWORD 'randompassword';
CREATE DATABASE mydb;
GRANT ALL PRIVILEGES ON DATABASE mydb TO doumi;
4. Prisma schema.prisma 파일 업데이트
schema.prisma 파일에 데이터베이스를 제대로 매핑했는지 확인하세요:

prisma
복사
편집
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}

generator client {
provider = "prisma-client-js"
}

model User {
id Int @id @default(autoincrement())
email String @unique
name String?
}
5. Prisma 데이터베이스 연결 테스트
모든 설정이 완료되었으면 다음 명령어를 실행해 보세요:

bash
복사
편집
npx prisma db push
명령어가 성공적으로 실행되면 Prisma 스키마와 데이터베이스가 동기화됩니다.

  1. 추가 문제 발생 시 로그 확인
    여전히 문제가 발생한다면 다음 명령어로 Docker 로그를 확인하세요:

bash
복사
편집
docker logs helper-db
위 로그에서 에러 메시지가 나오는 경우, 해당 내용을 기반으로 추가적인 조치를 취해야 합니다.

profile
프로젝트전에 해당 부분을 깊게 공부한것을 올려두는 벨로그

0개의 댓글