django backend project와 실제 mysql DBMS를 연결하기 앞서 django 상에서 해주어야 할 것들을 정리 및 django mysql db 삭제 방법 정리.
$ brew install mysql
(brew가 설치되지 않았다면 homebrew 설치 shell script: $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)
$ mysql.server start
$ mysql_secure_installation
$ brew services start mysql
$ mysql -u root -p [password]
mysql > use mysql;
mysql > ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';
mysql > FLUSH PRIVILEGES;
create database test character set utf8mb4 collate utf8mb4_general_ci;
$ pip install mysqlclient
mysql을 사용하는 os에 맞게 설치했다는 가정하에 위의 패키지를 설치해 주면 기본적인 사용준비는 끝난다
settings.py
에서 DATABASES를 연결해 주기보통 django project 내에 있는 settings.py
에 있는 DATABASES
를 통해 연결시켜준다. 같이 있는 SECRET_KEY
와 더불어 공개 되어서는 안되는 값이기에 아래와 같이 별도의 파일을 만들어주고 따로 관리함과 동시에 git등에 push할때 .gitignore
를 통해 예외처리 해준다.
DATABASES = {
'default' : {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'DATABASE 명',
'USER': 'DB접속 계정명',
'PASSWORD': 'DB접속용 비밀번호',
'HOST': '실제 DB 주소',
'PORT': '포트번호',
}
}
SECRET = {
'secret':'시크릿키',
}
settings.py
에는 아래와 같이해서 불러주면 된다.
import my_settings
DATABASE = my_settings.DATABASES
DB 모델링 테스트를 하거나 작업을 하는 도중 modeling한 DB를 다시 만들고 해야 할 일이 있을 경우 아래와 같은 방식으로 삭제 절차를 진행하고 작업한다.
물론 만든 DB를 일일히 수정해야 하는 경우도 있지만 로컬 테스트나 작은 작업일 경우엔 DB를 삭제하고 다시 올리는 것이 편할 수 있다.
DROP TABLE [delete-db]
Query OK, 0 rows affected (0.04 sec)
DB를 내리고 나서 django project의 DB모델을 생성한 app 폴더에 migrations
폴더로 향한 뒤
drwxr-xr-x 5 YB staff 160 2 21 14:00 .
drwxr-xr-x 10 YB staff 320 2 21 21:57 ..
-rw-r--r-- 1 YB staff 4837 2 21 14:00 0001_initial.py
-rw-r--r-- 1 YB staff 0 2 19 16:10 __init__.py
drwxr-xr-x 4 YB staff 128 2 21 14:00 __pycache__
migration을 진행한 000* 의 숫자로 시작하는 파일을 삭제하고
$ python manage.py makemigrations [app-name]
을 다시 진행하여 migration을 다시 진행하면 된다.