mysite/settings.py 파일은 장고설정을 표현한 파이썬 모듈
default값은 SQLite로 구성되어 있으며 다른 데이터베이스로 확장하여 사용하는것이 좋습니다.
# Assume you are activating Python 3 venv
$ brew install mysql
$ pip install mysqlclient
setting.py 중간에 데이터베이스 정보를 확인
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '데이터베이스 이름',
'USER': '아이디(ex:root)',
'PASSWORD': '비밀번호',
'HOST': 'localhost',
'PORT': '3306',
}
}
settings.py 안에 있는 sqlite3를 지워주시고 mysql을 연동하기 위해 위의 구문을 넣어주세요.
ENGINE: mysql
NAME: 데이터베이스 명
USER: (따로 변경하지 않았다면) root
PASSWORD: oracle mysql을 설치하셨을 때 지정하신 비밀번호
HOST: localhost
PORT: 포트 번호를 적어주시면 됩니다.
다른 데이터 베이스를 사용하고 싶으면 데이터베이스 바인딩을 설치하고 데이터베이스 연결 설정과 맞게 끔 데이터베이스'default' 항목의 값을 다음의 키 값으로 바꾼다.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
...
},
}
mysite/settings.py 위치에서 time_zone 값을 asia/seoul로 변경
setting에 installed_apps는 현재 Django 인스턴스에서 활성화된 모든 Django 어플리케이션들의 이름이 담겨 있습니다. 앱들은 다수의 프로젝트에서 사용될 수 있고, 다른 프로젝트에서 쉽게 사용될 수 있도록 패키징하여 배포할 수 있습니다.
마이그레이션이란 모델의 변경 내역을 DB 스키마에 적용시키는 장고의 방법
스키마란 : db내에서 데이터가 저장되는 구조와 제약 조건을 정의한 것, 장고로 치면 하나의 어플리케이션의 models.py 파일이라고 할 수 있다.
마이그래이션을 생성하는 명령어
app_name을 입력하면 해당 app에 대해서만 마이그레이션을 생성하고 app_name을 생략하면 전체 app에 대해서 마이그레이션을 생성합니다.
마이그래이션을 적용하는 명령어 즉 실제 DB에 변경사항을 적용하는 명령어라고 생각하면 된다.
그밖에
python manage.py showmigrations [app_name] # 프로젝트 마이그레이션에 대해 적용 여부 확인
python manage.py sqlmigrate app_name migration_name #어떤 sql실행문이 실행되는지 보여준다
적용된 마이그레이션 파일은 절대로 삭제하시면 안됩니다. 각 마이그레이션은 이전 버전에 대해 의존성을 가지기 때문에 DB 전체가 돌아올 수 없는 강을 건널 수도 있습니다.
마이그레이션 파일을 삭제하시려면 반드시 적용을 해제하고 삭제하셔야 합니다.