0. 가정
- PostgreSQL이 설치되어 있다.
- Django 프로젝트가 생성되어 있다.
1. (postgreSQL) 데이터베이스 생성
postgreSQL에 데이터베이스를 생성해야 한다.
CREATE DATABASE [데이터베이스 이름];
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 [데이터베이스 이름] TO root;
ALTER ROLE [role_name] SET default_transaction_isolation TO 'isolation_level' ;
- 위 명령어는 사용자의 기본 트랜잭션 격리 수준을 변경할 때 사용한다.
- 설정할 트랜잭션 격리 수준으로는 read committed, repeatable read, serializable 등이 있다.
2. (Django) Settings. py 설정
a. settings. py 코드 수정
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
기존의 settings.py 코드에서 DATABASES 부분에서 코드는 위와 같을 것이다. 이는 기본적으로 sqlite3와 연결된 코드이다. 이 코드를 수정하여 postgreSQL에 연결할 것이다.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': '데이터베이스 이름',
'USER': 'root',
'PASSWORD': '비밀번호',
'HOST': 'localhost',
'PORT': '5432',
}
}
이와 같이 ENGINE을 postgresql로 변경해주고, 위에서 만든 데이터베이스 및 유저로 적용시켜 줄 수 있다.
b. 환경 변수 설정
하지만 이 코드 그대로 사용하고, 깃허브에 올린다면 내 데이터베이스 이름 및 비밀번호 등등이 노출될 것이다.
이를 방지하기 위해 사용하는 방법이 환경 변수로 설정하는 것이다.
(1) django-environ 설치: pip install django-environ
(2) .env 파일 생성
- settings.py와 같은 level에서 .env 파일을 생성하면 된다.
- env 파일 작성
DB_NAME=데이터베이스이름
DB_USER=root
DB_PASSWORD=비밀번호
DB_HOST=localhost
DB_PORT=5432
(3) settings.py 파일 수정
from pathlib import Path
import environ
env = environ.Env()
environ.Env.read_env()
#DATABASE 설정 부분
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': env("DB_NAME"),
'USER': env("DB_USER"),
'PASSWORD': env("DB_PASSWORD"),
'HOST': env("DB_HOST"),
'PORT': env("DB_PORT"),
}
}
이렇게 수정하면 된다.
3. (Django) 데이터베이스에 기본 테이블 생성하기
- 장고 프로젝트를 시작하면 아래와 같이 기본적으로 생성되는 앱이 존재한다. (settings.py)
- 위와 같이 초기 설치된 앱들에서 사용하는 테이블을 위에서 생성한 데이터베이스에 생성할 것이다.
a. psycog2 라이브러리 설치
- pip install psycopg2 명령어를 이용하여 설치한다.
- 이 라이브러리는 Django와 PostgreSQL 간의 연결을 도와준다.
b. django migration 실행
- Migration은 Django에서 모델의 변경 사항을 데이터베이스에 적용하는 과정이다.
- python manage.py makemigrations 명령어로 초기 파일을 생성한다.
- python3 manage.py migrate 명령어를 이용하여 생성된 migration 파일을 실제 데이터베이스에 적용하여 테이블을 생성한다.
4. (postgreSQL) 생성한 테이블 확인하기
pgAdmin을 통해 gui로 확인하는 방법과 psql을 통해 커맨드로 확인하는 방법이 있다.
나는 psql에서 커맨드로 확인했다.
(1) psql -U root -d qa_chatbot 명령어로 psql에 접속한다.
(2) /dt 혹은 /dt+ 를 이용하여 확인할 수 있다.
'Django' 카테고리의 다른 글
[Django] Admin(어드민페이지) 커스터마이징 (0) | 2024.07.17 |
---|---|
[Django] 회원, 사용자 관리 데이터베이스(테이블) 만들기, User 모델, 커스텀 유저 모델 (0) | 2024.07.12 |
[Django] 가상환경 세팅 및 프로젝트 생성(Mac) (0) | 2024.07.05 |