๐ŸŒฑ ์›น/Django

Django์™€ MySQL ์—ฐ๋™ํ•˜๊ธฐ

๋ฏธ์ธ์ฃผ 2023. 2. 19. 20:43

Django๋Š” ์„ค์น˜ํ•  ๋•Œ ๊ธฐ๋ณธ์ ์œผ๋กœ SQLite๊ฐ€ ์—ฐ๋™๋ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์‹ค์ œ ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•ด MySQL ์—ฐ๋™ ์ž‘์—…์„ ์ง„ํ–‰ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

1. ์ปค๋„ฅํ„ฐ ์„ค์น˜

mysqlclient ๋ผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์„ค์น˜ํ•˜๋ฉด ํŒŒ์ด์ฌ๊ณผ MySQL ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

pip install mysqlclient

 

2. settings.py ์„ค์ •

DATABASES = {
    'default' : {
        'ENGINE': 'django.db.backends.mysql',    
        'NAME': '์—ฐ๋™ํ•  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„',                  
        'USER': 'DB ์ ‘์† ๊ณ„์ •๋ช…',                          
        'PASSWORD': 'DB ์ ‘์† ๋น„๋ฐ€๋ฒˆํ˜ธ',                  
        'HOST': '์‹ค์ œ DB ์ฃผ์†Œ',                     
        'PORT': '3306',         # ๊ธฐ๋ณธ ํฌํŠธ ์ฃผ์†Œ                  
    }
}

 

3. DB ๊ฐ์ง€

ํ•ด๋‹น DB์— ์กด์žฌํ•˜๋Š” ํ…Œ์ด๋ธ”๋“ค์„ model๋กœ ๋งŒ๋“ค์–ด์คŒ

# ์•ฑ ์•ˆ์— models.py์— ๋ฐ”๋กœ ์ €์žฅํ•˜๊ธฐ
python manage.py inspectdb > [์•ฑ์ด๋ฆ„]/models.py

# ์•ฑ ์•ˆ์— models.py์— ๋ฐ”๋กœ ์ €์žฅํ•˜๊ธฐ (๋ฉ€ํ‹ฐ DB)
python manage.py inspectdb --database 'db๋ช…' > [์•ฑ์ด๋ฆ„]/models.py

# ์ถœ๋ ฅ๋งŒ ํ•˜๊ธฐ
python manage.py inspectdb

 

 

4. ํ…Œ์ด๋ธ” ์ƒ์„ฑ

๋ชจ๋ธ์ด ๋ณ€๊ฒฝ๋˜์—ˆ์œผ๋‹ˆ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ ์šฉํ•˜๊ธฐ

python manage.py makemigrations
python manage.py migrate