Django DB 설정(with.docker)

HOKlNG·2021년 7월 20일
0

Django

목록 보기
2/5

백엔드 서버를 구성함에 있어서 DB설정은 매우 중요한 부분 중 하나죠.

기본적으로 sqlite가 설치되지만 오픈소스 중 하나인 postgresql을 사용해보겠습니다.

1. docker로 postgresql 실행시키기

postgresql은 docker image를 가져와서 실행시킬 예정입니다.
docker설치는 이전 게시물에 있으니 참고해보시기 바랍니다!
[링크]
https://velog.io/@dev_hoklng/docker-%EC%82%AC%EC%9A%A9-%EC%A4%80%EB%B9%841
https://velog.io/@dev_hoklng/docker-%EC%82%AC%EC%9A%A9-%EC%A4%80%EB%B9%842

docker로 설치하는 장점
OS나 별도 설치파일 없이 Docker만 설치되어 있다면 실행시켜서 사용할 수 있다는 점입니다.

먼저 docker에서 postgresql을 실행시켜보겠습니다.
docker compose파일을 만들어서 실행할 예정입니다.
docker에서 직접 명령어를 날려서 실행시킬 수 있지만. 오타나 재 입력을 최소화 하기위해 yml파일로 만들어서 한 번에 실행시키는 방법입니다.
실행시키시려는 경로에 해당 파일을 만들어 실행시켜보세요!

[docker-compose.yml]

vi docker-compose.yaml
----------------------------
version: '3'
services:
  postgres:
    image: postgres
    container_name: postgres_dev
    restart: always
    environment:
      POSTGRES_PASSWORD: '12341234'
      TZ: "Asia/Seoul"
    ports:
      - '5432:5432'
    volumes:
      - /mnt/c/User/ghtjd/Documents/velog:/var/lib/postgresql/

docker-compose.yml이라는 이름의 파일을 만든 후
다음 명령어를 실행하면 해당 내용으로 docker를 통해 postgresql이 실행됩니다.

docker-compose up -d

실행되었는지 확인하기 위해서 다음 명령어를 실행합니다.

docker ps  //실행중인 컨테이너 확인 법

일단 따라해서 실행시켜보고 따로 docker에 대한 내용을 공부해보셔도 됩니다!
게시물을 나중에 올리긴 할 것이지만 시간이 조금 걸릴 것 같네요.

2.django에 연결

settings.py 바꿔주기

지난 시간 생성했던 django 프로젝트 폴더 안에 있는 settings.py를 열면
DATABASES라는 부분이

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

이렇게 되어 있을 텐데 밑에 처럼 바꿔준다.

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'postgres',
        'USER': 'postgres',
        'PASSWORD': '12341234',
        'HOST': 'localhost',
        'PORT': '5432'
    }
}

psycopg2 라이브러리 설치

Postgresql을 사용하기 위해 라이브러리를 하나 설치해준다.

pip install psycopg2

이후 다음 명령어를 쳐서 문제없이 수행되면 db연결이 잘 된 것이다.

python manage.py migrate

설명을 조금 하자면 Django에서 사용하는 기본 DB table이 있는데
해당 내용을 사용하려면 처음에 python manage.py migration을 해주면 연결된 DB에 적용된다.

이후에 설명하겠지만
백엔드에서 사용할 내용들을 저장하기 위해 DB Table을 생성하고 싶다면 해당 프로젝트에서 Model이란 것을 생성해서

python manage.py makemigrations
python manage.py migrate

두 가지만 입력해주면 테이블이 생성,수정,삭제 된다.
해당 내용을 필요할 때 설명하겠다.

0개의 댓글