[Django] Django-mysql 연동 및 django에서 mysql 삭제방법 정리

ybear90·2020년 2월 23일
0

Django

목록 보기
12/12

django backend project와 실제 mysql DBMS를 연결하기 앞서 django 상에서 해주어야 할 것들을 정리 및 django mysql db 삭제 방법 정리.

Macos기준 MySQL 설치

$ brew install mysql

(brew가 설치되지 않았다면 homebrew 설치 shell script: $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)

mysql 시작 및 기본 명령어 설정

  • 시작
$ mysql.server start
  • 기본 명령어 설정
$ mysql_secure_installation
  • 질문은 총 6가지이고 필자는 아래와 같이 진행했다.
  1. 비밀번호 복잡도 검사과정 (n) -> 상용이면 맞게 수정하면 됨
  2. 비밀번호 입력 & 확인 -> 진행하면 된다
  3. 익명 사용자 삭제 -> y로 진행
  4. 원격 접속 허용여부 설정 -> 자기 개발 환경에 맞게 해주면 되는데 로컬 연습용으로만 사용하겠다면 y를 눌러 원격 접속 허용여부를 막는다
  5. test DB 삭제 -> (n)
  6. previlege로드 여부 문의 -> (y)
  • brew service를 이용해서 mysql 서버가 재부팅 여부와 관계없이 항상 돌게 해두기
$ brew services start mysql

mysql 사용

$ mysql -u root -p [password]
  • 참고 : mysql서버 접속 계정 비밀번호 변경
mysql > use mysql;
mysql > ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';
mysql > FLUSH PRIVILEGES;

DB 생성

create database test character set utf8mb4 collate utf8mb4_general_ci;

pip 패키지 설치

$ 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

django에서 db modeling한 mysql DB 삭제 방법

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을 다시 진행하면 된다.

profile
wanna be good developer

0개의 댓글