Django에서는 기본데이터베이스가 sqlite로 설정되어있다.
특정상황에서는 경량화된 sqlite가 아닌 mysql과 같은 데이터베이스를 사용해야 할 수 있다.
그래서 Django와 MYSQL을 연동하면서 경험했던걸 적어보려 한다.
1. mysqlclient 설치하기
pip install mysqlclient
2. django settings.py 수정하기
- settings.py에 있는 DATABASES 를 수정해줘야 한다.
- 아래는 공식문서에 적혀있는 내용이다.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'OPTIONS': {
'read_default_file': '/path/to/my.cnf',
},
}
}
# my.cnf
[client]
database = NAME
user = USER
password = PASSWORD
default-character-set = utf8
- 그리고 옵션에 아래와 같이 추가해야 한다고 적혀있다.
SET sql_mode='STRICT_TRANS_TABLES'
- 나는 env파일을 사용하여 적용해 보았다.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': env('NAME'),
'USER': env('DB_USER'),
'PASSWORD': env('PASSWORD'),
'HOST': env('HOST'),
'PORT': env('PORT'),
'OPTIONS': {
'init_command': 'SET sql_mode="STRICT_TRANS_TABLES"'
}
}
}
# .env 파일
NAME=DBNAME
DB_USER=DBUSER
PASSWORD=DBUSERPASSWORD
HOST=localhost
PORT=3306
3. 실행하기
- DB를 실행하고 django를 동작시키면 연결되는 것을 확인할 수 있다.
- DB를 연결하기 전에 DB는 먼저 생성해야 하는점을 유의해야 한다.
트랜잭션과 관련된 정보는 공식문서를 보면 확인이 가능하다.
참조 : https://docs.djangoproject.com/en/3.1/ref/databases/#mysql-notes
'프레임워크 > Django' 카테고리의 다른 글
AWS EC2 gunicorn을 이용한 django 배포하기 (0) | 2020.09.12 |
---|---|
장고를 왜 사용할까?(특징, 장단점) (0) | 2020.08.14 |
Django 시작하기 (0) | 2020.04.24 |
댓글