Django

Django sqlite3 mysql로 변경하기

끈끈 2023. 5. 9. 00:47

 

https://www.mysql.com/downloads/

 

MySQL :: MySQL Downloads

MySQL Cluster CGE MySQL Cluster is a real-time open source transactional database designed for fast, always-on access to data under high throughput conditions. MySQL Cluster MySQL Cluster Manager Plus, everything in MySQL Enterprise Edition Learn More » C

www.mysql.com

 

Django에서 sqlite3 대신 mysql을 사용하는 이유

  1. 확장성 : 많은 양의 데이터를 처리할 수 있어 대규모 프로젝트에 적합하다
  2. 보안 : 사용자 인증, 권한 관리 등 다양한 보안 기능을 제공한다
  3. 데이터베이스 관리 : 데이터베이스의 스키마, 인덱스, 관계 등 다양한 관리 도구를 제공한다
  4. 호환성 : 다양한 운영체제에서 동작할 수 있으며, 다양한 프로그래밍 언어와의 호환성이 높다

 


 

먼저, 프로젝트 가상환경에서 mysqlclient 설치!

 

pip install mysqlclient

 

기존 settings.py의 DATABASES:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

 

저기에 바로 바꿔넣어도 되지만 .gitignore에 추가를 위해 my_settings.py를 따로 생성해 주었다

 

 

my_settings.py:

DATABASES = {
    'default' : {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django_museum', # 연동할 mysql db 이름
        'USER': 'root', # db 접속 계정명
        'PASSWORD': 'password', # 해당 계정 비밀번호
        'HOST': '127.0.0.1',
        'PORT': '3306',
    }
}

 

나머지는 따로 설정하지 않았다면 그대로 적으면 된다

 

저기서 계정 비밀번호 중요!!!!! 저거 뭐로 돼있는지 몰라서 한참을 헤맸다

 

settings.py:

import my_settings


DATABASES = my_settings.DATABASES

 


 

MySQL에서 할 일

 

 

MySQL Workbench

 

1. create database django_museum character set utf8mb4 collate utf8mb4_general_ci;
2. use django_museum;
3. show tables;

위 세줄 각 명령어 실행. 실행은 ctrl + Enter를 입력하면 된다

SELECT * FROM user_user; # db 보기

DROP DATABASE django_museum; # db 지우기

 

 

vscode로 돌아가 python manage.py migrate를 하고

 

MySQL로 돌아와 show tables;를 하면 테이블이 생성된 것을 볼 수 있다!

 

 

'Django' 카테고리의 다른 글

drf swagger 문서화  (1) 2023.05.29
Django admin 페이지 커스텀하기  (1) 2023.05.23
DRF BooleanField  (2) 2023.04.25
POETRY 가상환경 설정하기  (8) 2023.04.24
파이썬 장고 실무 심화 5주차_테스트코드 TDD  (1) 2023.04.21