1-1. PostgreSQL 로컬 설치
설치 간 유의할 점 : root의 password 입력하는 란 나오는데 유의할 것.
https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
1-2. PostgreSQL Docker 설치
PostgreSQL을 Docker 환경에서 설치하고 싶다면 docker를 설치하고 아래 명령어를 실행 하면 된다.
--name : container 이름
-e : 환경변수로 postgresql의 password 넘겨줌
-v : docker container 종료시에도 db 데이터 유지되도록 volume 설정 <로컬 저장 path>:<postgre db data path>
-d : 사용할 postgresql 이미지
docker run -p 5432:5432 \
--name ksm-postgres \
-e POSTGRES_DB=findooh \
-e POSTGRES_PASSWORD=rlatjsals1! \
-e TZ='Asia/Seoul' \
-e PGTZ= 'Asia/Seoul' \
-v ./db/postgre:/var/lib/postgresql/data \
-d postgres:14.4-alpine
2. Django-PostgreSQL Connector 설치
python code 단에서 postgresql 을 사용하기 위해 connector 설치
$pip install psycopg2 # window
$pip install psycopg2-binary # linux, mac
3. pgAdmin4 접속해서 Create Database
PostgreSQL 설치 완료시, pgAdmin4가 자동으로 설치(mysql의 workbench와 유사) 되는데, root 계정(postgres)으로 접속해서 database를 생성
4. Django settings.py / my_settings.py 작성
일반적으로 key 보호를 위해 my_settings.py 에 따로 작성하여 import 함 (dotenv 활용도 가능)
# settings.py
import my_settings
DATABASES = my_settings.POSTGRESQL_DATABASES
# my_settings.py
POSTGRESQL_DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': '<your schema name>', # Schema Name
'USER': 'postgres', # USER NAME
'PASSWORD': <your passwd>, # PASSWORD NAME
'HOST':'127.0.0.1',
'PORT':'5432',
}
}
# .env.local
NAME = 'db_schema_name' # Schema Name
DB_USER = 'postgres' # USER NAME
PASSWORD = 'rlatjsals1!' # PASSWORD NAME
HOST = '127.0.0.1' # HOST
PORT = '5432' # PORT
5. Django settings.py 작성
DATABASES = {
# postgresql
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': os.environ.get('NAME'), # Schema Name
'USER': os.environ.get('DB_USER'), # Mac에선 USER 환경 변수가 존재하므로 DB_USER로 활용
'PASSWORD': os.environ.get('PASSWORD'),
'HOST': os.environ.get('HOST'),
'PORT': os.environ.get('PORT'),
}
}
6. Django ORM을 PostgreSQL에 migrate
$ python manage.py makemigrations
$ python manage.py migrate
'DB > 기본 실습' 카테고리의 다른 글
[Celery] Celery 비동기 작업 큐 예제 (by. FastAPI) (0) | 2022.11.29 |
---|---|
[DB] MongoDB Docker + Robo3T 셋팅 (0) | 2022.11.13 |
[DB] AWS EC2에서 Sqlite3 DB 확인 (0) | 2022.06.13 |
[DB] Django 연동 DB 관련 Tools (Connector, DBMS) (0) | 2022.05.30 |
팀 공용 MongoDB-Atlas-Robo 3T 셋팅 (0) | 2022.05.04 |