Django와 mariadb 연동하기

김지후·2022년 6월 28일
0
  1. models.py에 코드를 입력한다. (클래스를 만들어준다.)
  2. admin.py에 코드를 입력한다. (클래스를 등록해준다.)

외부 DB

Maria DB (MySQL과 거의 똑같음) 사용법
1. brew install mariadb : mariadb 설치

외부DB 연동하기

외부DB 연결 방법

  1. pip install mysqlclient

  2. my_settings.py를 따로 만들어준다.

    (settings.py의 SECRET_KEY와 DATABASES는 외부로 노출되면 안되므로)

  • my_settings.py (깃허브에 my_settings.py 올리면 안됨)
mySECRET_KEY = 'z7_loqfmp)_8+f*=5dp#sdfefi%%!$)dfjskfl'

myDATABASES = {
	'default' : {
					'ENGINE' : 'django.db.backends.mysql', # 벡엔드 엔진
					'NAME' : 'mysql', # 'mysql'의 이름을 가진 데이터베이스
					'USER' : 'root', # 계정
					'PASSWORD' : '&&&&&&&', #rootpassword로 지정할 숫자(6번에 나와있음)
					'HOST' : '127.0.0.1',
					'PORT' : '3306'
		}
}
  • settings.py
from .my_settings import mySECRET_KEY, myDATABASES

SECRET_KEY = mySECRET_KEY

DATABASES = myDATABASES
  1. /usr/local/bin 으로 이동한다.
    (다른 블로그에서는 /usr/local/mysql/bin 로 이동하라고 나와있었지만, /usr/local/bin으로 이동해야 작동했음)

  2. mysql.server start : 데이터베이스 서버 시작을 위하여 다음의 명령어를 친다.

    mysql.server start : 데이터베이스 서버 시작
    mysql.server stop : 실행중인 데이터베이스 서버 멈춤
    mysql.server status : 실행중인 서버의 상태 확인

  3. mysql -u root -p : 서버에 접속하기

    위의 명령어를 치면 password를 입력하라고 하는데, 생성한 password가 없어서 어떻게 해야할지 몰랐다.
    sudo mysql -u -root 을 치면 password : 가 나오는데 이때, 내가 자주 쓰는 비밀번호를 그냉 입력하니 접속이 되었다.
    USE mysql; : mysql 데이터베이스로 이동한다. (내가 프로젝트에서 쓸 db)
    접속 후 SET PASSWORD=PASSWORD('&&&&&&')을 하여 새로운 비밀번호를 설정한 후
    exit을 눌러서 MariaDB를 나간다.
    다시 mysql -u root -p : 에서 새로 지정한 password를 입력하면 접속이 된다.

  4. python manage.py makemigrations

  5. python manage.py migrate

    이전에 python manage.py migrate을 했었는데 코드에 에러가 있어서 수정한 후 다시 migrate을 했었다.
    그런데 django.db.utils.OperationalError: (1050, "Table 'customer_userinfo' already exists") 와 같은 에러문이 떴다.
    구글링을 해보니 python manage.py migrate --fake 앱이름 을 작성하면 된다 해서 python manage.py migrate --fake customer을 해주니 migrate이 되었다.(아마도 제대로 해결하려면 테이블을 삭제한 후 다시 migrate을 해야될 것으로 보인다.)

profile
JU KIM

0개의 댓글