TIL59 - PostgreSQL을 Django에 연결하는 방법
PostgreSQL을 Django에 연결하는 방법
이전까지는 MySQL을 사용했었는데, 이번에 들어가는 회사는 PostgreSQL을 사용해서
PostgreSQL을 이용한 프로젝트를 만들며 Django에 대한 총복습을 했다.
1. 설치
- 나는 터미널에서 명령어를 입력해서 설치했다.
brew install postgresql
brew services start postgresql
- 설치한
PostgreSQL버전을 확인
postgres -V

PostgreSQL접속
psql DB명
psql postgres
라고 입력하면 postgres가 이름인 데이터베이스에 접속하게 된다.

맨 처음에 접속하면 postgres=# 이렇게 나오고 뒤에는 명령어를 입력해보며 익혔다.
DB Instance확인
\l (\list 라고 입력해도 됨)
PostgreSQL을 처음 설치하면 최초 DB는 이렇게 3개가 생성되어 있다

DB생성
생성 코드
create database "DB명" with owner="owner" encoding="utf8" lc_collate="C" lc_ctype="c"
내가 작성한 코드
create database django_orm with owner='kylee' encoding='utf8' lc_collate='C' lc_ctype='C';
DB를 최초에 생성할 때, lc_collate와 lc_ctype은 template와 같은 걸 사용하라고 나와서
DB명만 설정해줬다.
또한, C라고 설정해야 한글 정렬할 때 에러가 안생긴다고 한다.

그러면 이렇게 설정된 걸 확인할 수 있다.
2. Django와 연동
settings.py수정
settings.py의 DATABASES 부분을 PostgreSQL에 맞게 수정해야 한다
(기본 세팅은 sqlite3로 되어있기 때문)
DATABASES = {
'default': {
'ENGINE': env('DB_ENGINE'),
'NAME': env('DB_NAME'),
'USER' : env('DB_USER'),
'PASSWORD' : env('DB_PASSWORD'),
'HOST' : env('DB_HOST'),
'PORT' : env('DB_PORT')
}
}
django-envirion을 설치 후 .env파일을 만들어서 값들을 숨겼는데, 설정한 값들은 이렇다.
DB_ENGINE='django.db.backends.postgresql'
DB_NAME='django_orm'
DB_USER='kylee'
DB_PASSWORD='1234'
DB_HOST='127.0.0.1'
DB_PORT=''
DB_PORT의 경우, 기본이 5432인데 입력해도 되고 저렇게 비워도 된다
(둘 다 해봤는데 이상없었음)
psycopg2설치
파이썬에서 PostgreSQL을 다루기 위해 설치한다.
MySQL을 사용할 때 설치한 pymysql 같은 개념이다.
맨 처음에 나는 아래와 같이 입력해서 설정했다.
pip install psycopg2
그런데 설치 후 서버를 켜면
Psycopg2 error: Symbol not found _PQbackendPID 라고 에러가 발생했다.
찾아보니,
psycopg2-binary를 설치해야 한다고 한다. 그래서 psycopg2 삭제 후 재설치를 했다.
pip uninstall psycopg2
pip install psycopg2-binary
그래서 왜 이렇게 하나 찾아보니, 공식문서에서 psycopg2-binary의 특징을
작성한 걸 찾을 수 있었다.
This will install a pre-compiled binary version of the module which does not require the build or runtime prerequisites described below.
얼추 해석해보자면, 컴파일된 버전을 설치할 수 있고, 따로 빌드할 필요 없다는 것 같다.
INSTALLED_APPS에 추가
settings.py의 INSTALLED_APPS에는 psycopg2 라고 추가한다.
migrate
makemigration 과 migrate를 거치면

이렇게 테이블이 만들어진 걸 확인할 수 있다.
Author And Source
이 문제에 관하여(TIL59 - PostgreSQL을 Django에 연결하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kyleee/TIL59-PostgreSQL을-Django에-연결하는-방법저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)