PostgreSQL + Django 연동하기
PostgreSQL + Django 연동하기
PostgreSQL 재설치
지난번에 깔았던 거 지우고
(C:\Program Files\PostgreSQL\14 에 uninstaller가 있었다. 이거 누르기만 하면 알아서 잘 지워줌)
다시 깔았더니 디폴트로 포트번호 5432가 제대로 나왔다.
지난번에 컴퓨터에 13이 깔려있어서 5432가 사용 중이라 5433이 떴었나봄
postgreSQL 깔면서 정하는 비밀번호는 postgreSQL 슈퍼유저 비밀번호라 내가 쓰는 비밀번호 써도 되는 것 같다. (유저네임은 디폴트 postgres)
Django와 연동시키기
클론받은 프로젝트의 settings.py 데이터베이스 설정은 다음과 같았다.
DB이름: watti, 유저아이디: root, 유저비밀번호: ****
잘 모르니까 그냥 저거에 맞춰서 만듦 (초기세팅도 동일)
근데 왜 직접 타이핑해서 치면 구문 오류 나고 복붙해서 붙이면 잘되는지 모르겠음
혹시 모르니까 텍스트로 붙여넣(어놓)기
SQL shell (psql)
CREATE DATABASE watti; CREATE USER root WITH PASSWORD '****'; ALTER ROLE root SET client_encoding TO 'utf8'; ALTER ROLE root SET default_transaction_isolation TO 'read committed'; ALTER ROLE root SET TIME ZONE 'Asia/Seoul'; GRANT ALL PRIVILEGES ON DATABASE watti To root;
이것도 설치해줘야함!
$ pip install psycopg2
이러고 makemigrations && migrate 하면 이제 오류 안나고 런서버 잘 돌아감
정리
SQL shell(psql)에서 데이터베이스 & 유저 생성 및 권한 설정 후
# 데이터베이스 생성
CREATE DATABASE 데이터베이스이름;
# 유저아이디 & 비밀번호 지정
CREATE USER 유저아이디 WITH PASSWORD '유저비밀번호';
# 인코딩, isolation, timezone 설정
ALTER ROLE 유저아이디 SET client_encoding TO 'utf8';
ALTER ROLE 유저아이디 SET default_transaction_isolation TO 'read committed';
ALTER ROLE 유저아이디 SET TIME ZONE 'Asia/Seoul';
# 유저에게 데이터베이스 접근 권한 주기
GRANT ALL PRIVILEGES ON DATABASE 데이터베이스이름 To 유저아이디;
settings.py에서 위에서 만든 데이터베이스와 장고를 연동시킨다.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': '데이터베이스이름',
'USER': '유저아이디',
'PASSWORD' : '유저비밀번호',
'HOST' : 'localhost',
'PORT' :'',
}
}
Reference
[Django] 튜토리얼 ② : Django 설치부터 PostgreSQL DB 연동까지
Author And Source
이 문제에 관하여(PostgreSQL + Django 연동하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kjyeon1101/PostgreSQL-Django-연동하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)