Django

[Django] PostgreSQL 연동하기

comgu 2025. 2. 4. 22:44
반응형

Django 프로젝트에서 PostgreSQL을 연동하는 방법을 알아본다. 윈도우 환경에서 진행한다.



1. PostgreSQL 설치하기

먼저 PostgreSQL을 설치해야 한다:

  1. https://www.postgresql.org/download/windows/ 에서 installer 다운로드
  2. 설치 과정에서 입력한 비밀번호는 반드시 메모해둬야 한다.
  3. 기본 포트 번호는 5432를 사용한다.

 

2. 시스템 환경변수 확인

PostgreSQL 설치 후 PATH 설정이 필요하다. psql 명령어가 인식되지 않는다면, "시스템 환경변수 편집"에서 PATH에 psql의 위치(C:\Program Files\PostgreSQL\17\bin)를 추가한다. (17은 설치한 PostgreSQL 버전에 따라 다를 수 있다)

이제 새로운 명령 프롬프트를 열고 다음 명령어로 PostgreSQL이 제대로 설치되었는지 확인한다.

psql --version

 

3. Django 프로젝트 설정

3.1 필요한 패키지 설치

pip install psycopg2-binary

3.2 데이터베이스 생성

PostgreSQL 명령 프롬프트에서 다음 명령어를 실행해서 DB를 생성한다:

CREATE DATABASE myproject;

pgAdmin에서 DB를 생성할 수도 있다.

3.3 Django 설정 변경

Django 프로젝트의 settings.py 파일에서 데이터베이스 설정을 수정한다:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'myproject',
        'USER': 'postgres',
        'PASSWORD': '설치_시_입력한_비밀번호',
        'HOST': 'localhost',
        'PORT': '5432',
    }
}

 

4. 보안 설정

프로젝트 보안을 위해 환경 변수를 사용하는 것을 추천한다:

pip install python-dotenv

프로젝트 루트에 .env 파일을 생성한다:

DB_NAME=myproject
DB_USER=postgres
DB_PASSWORD=your_password
DB_HOST=localhost
DB_PORT=5432

settings.py 파일을 다음과 같이 수정한다:

import os
from dotenv import load_dotenv

load_dotenv()

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': os.getenv('DB_NAME'),
        'USER': os.getenv('DB_USER'),
        'PASSWORD': os.getenv('DB_PASSWORD'),
        'HOST': os.getenv('DB_HOST'),
        'PORT': os.getenv('DB_PORT'),
    }
}

 

5. 마이그레이션 실행

설정이 완료되었다면, 다음 명령어로 마이그레이션을 실행한다:

python manage.py makemigrations
python manage.py migrate

 

6. 연결 테스트

Django 쉘에서 데이터베이스 연결을 테스트해볼 수 있다:

from django.db import connection

try:
    connection.ensure_connection()
    print("데이터베이스 연결 성공!")
    
    # 현재 데이터베이스 정보 확인
    print(f"현재 사용 중인 데이터베이스: {connection.settings_dict['NAME']}")
    print(f"데이터베이스 엔진: {connection.vendor}")
    
    # 간단한 쿼리 실행
    with connection.cursor() as cursor:
        cursor.execute("SELECT version();")
        version = cursor.fetchone()
        print(f"PostgreSQL 버전: {version[0]}")
        
except Exception as e:
    print(f"연결 실패: {str(e)}")
데이터베이스 연결 성공!
현재 사용 중인 데이터베이스: myproject
데이터베이스 엔진: postgresql
PostgreSQL 버전: PostgreSQL 17.2 on x86_64-windows, compiled by msvc-19.42.34435, 64-bit

 

7. 주의사항

  1. .env 파일은 반드시 .gitignore에 추가하기
  2. PostgreSQL 설치 시 설정한 비밀번호는 안전한 곳에 보관하기
  3. 새로운 명령 프롬프트를 열었을 때 psql 명령어가 인식되지 않는다면, PATH 설정을 다시 확인할 것
  4. 데이터베이스 접속이 안 될 경우 PostgreSQL 서비스가 실행 중인지 확인하기 (Windows 서비스에서 "PostgreSQL" 확인)

이렇게 하면 Django 프로젝트에서 PostgreSQL을 사용할 준비가 완료된다!

더 나아가 pgAdmin을 설치하면 GUI 환경에서 편리하게 데이터베이스를 관리할 수 있다. pgAdmin은 PostgreSQL 설치 시 함께 설치되었을 것이다.

반응형