프로젝트

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

Chansman 2025. 6. 11. 12:52

🚦 1️⃣ 모든 컨테이너 & 볼륨 완전 정리 (optional, 강력 추천)

👉 이미 떠 있는 컨테이너/네트워크/볼륨이 꼬여 있다면 깨끗이 정리!

docker-compose down --volumes --remove-orphans
docker system prune -af
  • 모든 컨테이너/네트워크/이미지/볼륨 다 정리됨
  • 정말 데이터 다 날려도 되는지 확인 후 실행!

🚦 2️⃣ Docker 이미지 다시 빌드

docker-compose build --no-cache
  • --no-cache: 도커 이미지를 새로 빌드(캐시 전혀 안 씀)

🚦 3️⃣ 필요한 서비스(my-db 등)만 up

docker-compose up -d my-db
  • DB만 먼저 켜서 연결부터 테스트!

🚦 4️⃣ DB가 정상적으로 켜졌는지 로그/상태 확인

docker ps
docker-compose logs my-db
  • **STATUS가 Up (healthy)**면 OK!

🚦 5️⃣ 로컬에서 DB 연결 테스트

a. psql 명령으로 직접 접속

psql -U postgres -d django-postgres -h localhost -p 5432
  • 접속 성공 시 → 도커 my-db가 잘 열렸다는 뜻!

b. DB tool(TablePlus, DBeaver, PgAdmin 등)에서도 동일하게 테스트 가능

  • host: localhost
  • port: 5432
  • user: postgres
  • password: qwe123
  • dbname: django-postgres

🚦 6️⃣ 로컬 Django에서 DB 연결 테스트 (migrate 실행)

(가상환경 활성화 → 프로젝트 폴더 이동 후)

python manage.py migrate --settings=config.settings.dev
  • 정상적으로 테이블이 생성/마이그레이션 된다면 DB 완벽하게 연결된 것!

🚦 7️⃣ 이제 개발/운영 준비 완료!

  • runserver/createsuperuser 등 모두 가능

이 흐름만 지키면 데이터 꼬임, 연결 문제, 캐시 꼬임 99% 해결!


⚡️ 정리 (명령어 순서)

docker-compose down --volumes --remove-orphans
docker system prune -af

docker-compose build --no-cache

docker-compose up -d my-db

docker ps
docker-compose logs my-db

psql -U postgres -d django-postgres -h localhost -p 5432

python manage.py migrate --settings=config.settings.dev