프로젝트

📌 Docker PostgreSQL과 로컬 Django 연동 문제 해결 과정 정리 2/2

Chansman 2025. 6. 11. 13:47

📌 Docker PostgreSQL과 로컬 Django 연동 문제 해결 과정 정리


1️⃣ 문제 상황

  • 로컬 Django와 Docker PostgreSQL 간 데이터 연동 불가
  • psql 접속 시 connection refused 발생
  • Docker 컨테이너 내부 PostgreSQL은 실행 중이나 외부 접속 불가

2️⃣ 원인 분석

  • PostgreSQL 설정파일(pg_hba.conf)에서 외부 접속 제한
  • listen_addresses는 '*'로 설정되어 있지만, 인증 정책이 접속을 막음

3️⃣ 해결 과정

3-1. pg_hba.conf 수정

  • 도커 컨테이너 내 경로: /var/lib/postgresql/data/pg_hba.conf
  • 편집기 설치 후 수정 (nano 권장)
apt update && apt install nano -y
nano /var/lib/postgresql/data/pg_hba.conf
  • 파일 맨 아래에 다음 줄 추가 또는 기존 마지막 줄 교체
host    all             all             0.0.0.0/0               md5

3-2. PostgreSQL 재시작

docker restart postgres

4️⃣ 접속 및 확인

  • 로컬에서 PostgreSQL 접속 확인
psql -U postgres -d django-postgres -h localhost -p 5432
  • 접속 성공 시 테이블 목록 확인
\dt

5️⃣ Django 마이그레이션 및 연동

  • 마이그레이션 파일 생성
python manage.py makemigrations --settings=config.settings.dev
  • 마이그레이션 적용
python manage.py migrate --settings=config.settings.dev
  • 정상 테이블 생성 및 DB 연동 완료 확인

6️⃣ 결과

  • 도커 PostgreSQL과 로컬 Django 정상 연동
  • 데이터 공유 및 조회 가능
  • Django 서버 및 관리자 페이지 정상 동작

7️⃣ 추가 팁

  • 로컬 PostgreSQL 사용 중이라면 서비스 종료 권장
  • docker exec -it postgres bash로 컨테이너 내부 진입 가능
  • psql은 DB 접속용 CLI, 마이그레이션은 Django 명령어임