====== models.py ====== from django.db import models class PyBlog(models.Model): id = models.IntegerField(primary_key=True, null=False) title = models.CharField(max_length=100) class Meta: db_table = 'py_blog' ===== DATABASE 반영 ===== ==== DATABASE 초기화 ==== 기존 데이터베이스를 초기화가 필요할 수 있다. 이럴때는 기존 migration내역을 삭제할 필요가 있다. $ find . -path "*/migrations/*.py" -not -name "__init__.py" -delete $ find . -path "*/migrations/*.pyc" -delete $ find . -path "*/migrations/*.pyc" -delete === db.sqlite3사용한다면 === 프로젝트의 root 디렉토리에 위치한 **db.sqlite3 파일을 삭제**합니다. === migration === django 로 DB 생성할때 최초에 한번 migration 하는것처럼 위와 같은 명령어로 동일하게 수행합니다. python manage.py migrate ==== makemigrations ==== makemigrations 은 모델을 변경시킨 사실과 새로운 모델을 만들었다는것을 DJango에게 알려주는 명령어 입니다. $ python manage.py makemigrations makemigrations 을 실행하면 myapp/blog/migrations/0001_initial.py 파일이 생긴 것을 확인할 수 있습니다. ==== migrate ==== migrate는 migration을 감지된 모델들을 실행하고, 자동으로 데이터베이스 스키마를 관리해주는 기능을 합니다. 이제 migrate명령을 실행하면 py_blog 테이블이 생길것입니다. $ python manage.py migrate ==== migration SQL 확인 ==== 실질적으로 수행되는 SQL문장을 확인 할 수 있다. python manage.py sqlmigrate [app_label] [migration_name] ==== showmigrations ==== 현재 migrations목록을 확인 할 수 있다. python manage.py showmigrations ==== 모델수정 ==== py_blog 테이블에 수정일자와 등록일자 컬럼을 추가하였습니다. - model.py 수정 (수정일,등록일 추가) - python manage.py makemigrations - python manage.py migrate 으로 다시 진행했네요. update_dt = models.DateTimeField(auto_now=True) regist_dt = models.DateTimeField(auto_now_add=True) ===== Database에서 모델 가져오기 ===== python manage.py inspectdb