요것저것 개발 지식쌓기😎/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이 생긴 것을 확인할 수 있습니다.