요것저것 개발 지식쌓기😎/Django
[Django] DB 변경하기 (sqlite3 -> mysql)
정리왕이되자
2023. 3. 27. 21:21
Notice
- 이번에 CS 전공 공부를 다시 하면서 프로젝트를 하나 하고 싶었다. 새 프로젝트를 할까 하다가 전 회사 동기 언니가 기존에 있었던 프로젝트를 발전시켜보라는 조언을 해주었다. 그리고 회사에 가보니 새 프로젝트를 진행하는 것보다 기존에 있던 프로젝트를 유지보수 하거나 수정하는 경우가 더 많았던 나의 경험을 바탕으로 예전에 했던 프로젝트를 수정해보려 한다.
- https://github.com/ygk313/lohbs-pick-enhanced
GitHub - ygk313/lohbs-pick-enhanced
Contribute to ygk313/lohbs-pick-enhanced development by creating an account on GitHub.
github.com
1. 커넥터 설치
Python과 mySQL 서버가 통신을 할 수 있게 파이썬 용 데이터베이서 커넥터를 설치합니다. 저는 pymysql을 설치하였습니다.
pip install pymysql
2. DB 서버 마련하기
일단 mysql 서버에 db를 만들어 줍니다. 저는 lohbspick이라는 db를 만들었습니다.
# mysql 서버 접속하기
mysql -u root -p
#데이터베이스 생성하기
create database lohbspick;
#데이터베이스 확인하기
show database;
3. settings.py 설정
django 프로젝트의 manage.py와 같은 폴더 내에 my_settings.py를 만들어줍니다.
touch my_settings.py
my_settings.py를 만들고 여기에 settings.py에 있던 DATABASE 부분을 옮겨줍니다.
#my_settings.py
import pymysql
pymysql.install_as_MySQLdb()
DATABASE = {
'default' : {
'ENGINE' : 'django.db.backends.mysql', #사용할 엔진 결정
'NAME' : 'lohbspick', # 연동할 mysql 데이터베이스 이름
'USER' : 'root', # DB 접속할 계정명
'PASSWORD': '비밀번호', # DB 계정에 대한 비밀번호
'HOST': 'localhost', # 연결할 호스트 주소
'PORT': '3306' , #mysql 서버 포트
}
}
기존의 settings.py에는 my_settings를 불러와 DATABASE 부분만 교체해주면 됩니다.
#settings.py
import my_settings
...
DATABASE = my_settings.DATABASE
...
그리고 migrate를 해주어야 합니다.
python manage.py migrate
이렇게 하고 mysql server를 확인해보면 table이 생긴 것을 확인할 수 있습니다.