Django에서 PostgreSQL 연결하기 위해 psycopg2 모듈 설치
poetry add psycopg2-binary
dev용 DB는 로컬 서버, PostgreSQL 시스템 이용
# velog/config/settings/dev.py
# ...
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': config('DEV_DB_NAME'),
'USER': config('DEV_DB_USER'),
'PASSWORD': config('DEV_DB_PASSWORD'),
'HOST': config('DEV_DB_HOST'),
'PORT': '',
}
}
prod용 DB는 다른 서버, PostgreSQL 시스템 이용
# velog/config/settings/prod.py
# ...
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': config('PROD_DB_NAME'),
'USER': config('PROD_DB_USER'),
'PASSWORD': config('PROD_DB_PASSWORD'),
'HOST': config('PROD_DB_HOST'),
'PORT': config('PROD_DB_PORT'),
}
}
.env
파일에 각 DB 정보 추가
# velog/.env
# ...
DEV_DB_NAME=velog
DEV_DB_USER=velog
DEV_DB_PASSWORD=velog
DEV_DB_HOST=localhost
PROD_DB_NAME=velog
PROD_DB_USER=velog
PROD_DB_PASSWORD=velog
PROD_DB_HOST=192.168.0.4
PROD_DB_PORT=5432
PostgreSQL에서 dev용 DB 계정 및 시스템 생성
sudo -u postgres psql # postgres 계정으로 psql 접속
CREATE USER velog; /* DEV_DB_USER */
ALTER USER velog with password 'velog'; /* DEV_DB_PASSWORD */
CREATE DATABASE velog owner velog; /* DEV_DB_NAME */
\q
다른 서버에 원격 접속하여 마찬가지로 prod용 DB 계정 및 시스템 생성
(원격 접속) 5432 포트 열고 postgresql.conf
및 pg_hba.conf
파일에서 설정 변경
Django에서 현재 프로젝트에 대해 모든 가능한 migration 정보 확인
# /velog
python manage.py showmigrations # dev
python manage.py showmigrations --settings=config.settings.prod # prod
둘 다 migration 정보가 잘 뜨면 성공