티스토리 뷰

반응형

[1] 장고의 기본 DB 설정 

 

아래 명령어로 장고 프로젝트를 만들면

django-admin startproject sample_api

 

이렇게 파일이 구성됩니다.

 

 

settings.py에 들어가보면 

장고는 기본 DB로 sqlite를 쓰는 것을 알 수 있습니다. 

 

 

SQLite는 주로 소규모 프로젝트에서 사용되는 파일기반의 가벼운 데이터베이스 입니다.

보통 초기 개발 단계에서 SQLite를 사용하여 빠르게 개발하고

서비스로 제공할 때 운영환경에 어울리는 데이터베이스로 바꾼다고 합니다.

 

대규모 서비스에는 오라클 /

소규모 서비스는 PostgreSQL, MySQL 등의 데이터베이스를  많이 사용합니다. 

 

그리고 데이터베이스를 여러 개 사용할 때 

default에 지정한 데이터베이스 외에도 추가로 등록해서 사용할 수 있다고 합니다. 

 

[2] sqlite 파일이 만들어지는 시점

 

근데 NAME 필드를 보면 

데이터베이스 이름으로 BASE_DIR (프로젝트 디렉토리)에 있는 db.sqlite3 파일을 가리키고 있는데,

현재 프로젝트 구성파일들을 보면 해당 파일이 없습니다. 

 

 

아래 명령어로 runserver를 해보면

python manage.py runserver

 

장고의 기본 앱(admin, auth  등)에 대한 마이그레이션이 적용안되어있다고 나옵니다..!! 

migrate 명령을 통해 기본 앱들이 사용하는 테이블들을 생성해줘야합니다.

 

 

migrate 명령을 하면 

python manage.py migrate

 

이제서야 db.sqlite3 파일이 생겼네요..!!

 

 

흠...

테이블이 하나도 없는 디비는 의미가 없으니

테이블이 처음 생성되는 시점에 같이 디비 파일을 생성하는건가..? 잘모르겠네요

 

[3] sqlite 파일 열어보기

 

sqlite 파일을 열어보려면 브라우저 프로그램이 있어야합니다. 

sqlitebrowser.org/dl/ 여기서 브라우저를 다운받아줄게요!

 

브라우저에 sqlite 파일을 끌어와주면 됩니다.

 

 

 

[4] Heroku 배포했을 때 기본 DB 설정

 

Heroku로 장고 API 배포하기 를 했을때

dj_database_url 이라는 패키지를 설치하라고 요구하고

아래와 같이 DB쪽 세팅을 해줬는데요...! 

 

 

기본 DB 세팅은 sqlite3로 되어있지만

dj_database_url을 통해서 heroku에서 사용하는 postgresSQL로 설정을 바꿔주는 것입니다.

 

문서의 Provistion a database 쪽을 보면

 

 

database url은 이런 값이라고 합니다.

postgres://qayojflkqzwdlk:c9b49b89f95625e0c1ed225aed3871a888ab41ca53d6d16078fe5f6416f8a402@ec2-23-23-80-20.compute-1.amazonaws.com:5432/dbr6s55rtq1vqg

 

그리고 DB는 기본적으로 postgreSQL로 add on 되어있는데

 add-on marketplace 에 Redis, MongoDB, MySQL등의 DB가 있으니 그것을 add on하게 바꿀 수 도 있다고 합니다. 

 

 

[ Reference ]

- 점프 투 장고

반응형
댓글