Django는 DB에 테이블을 자동으로 생성해주는 기능이 있다.
원하는 DB 모델을 models.py 안에 작성한 뒤 migrations, migrate 를 해주면 된다.
backend가 장고 프로젝트이고, api가 app이다.
api/models.py 에서 시작해보자!
1) models.py에 내용 추가
2) migrations 파일 생성
$ python manage.py makemigrations api
-> 1)에서 만들어준 model인 Post2와 같이 DB의 테이블을 생성하기 위한 migration 파일을 생성한다.
이렇게 나오면 성공!
3) migrate
$ python manage.py migrate api
2)에서 만들어진 migration 파일을 이용해서 DB의 테이블 생성!
이렇게 나오면 성공 ~~~!
4) 결과 확인
MySQL Workbench 를 통해 확인해보면
models.py에서 설정해주었던 class명인 Post2,
app의 이름인 api가 합쳐져 api_post2라는 이름의 테이블이 생성된 것을 확인할 수 있다.
(컬럼들도 models.py에서 설정한대로 생김!)
추가) 테이블 자동 생성 안되는 경우
첨에 models.py에 위와 같이 Meta를 사용해서 했었는데 , 이렇게 하면 DB에 테이블이 자동으로 생성되지 않는다.
managed=False 로 자동 migration을 막고 있기 때문!!
이 경우는 db에 미리 테이블을 생성한 후 함부로 migration 되는 것을 방지하고 싶을 때 사용하면 된다 ~~~
추가) migration 꼬였을 때
migration이 꼬였을 때는 vscode에서 migrations 폴더를 그냥 지워 버리고 다시 해보면 됨 !
'Back-End > Django' 카테고리의 다른 글
[Django] 01. REST framework로 Django API 만들기 (0) | 2021.07.05 |
---|---|
[Django] models.py 에서 필요없는 테이블 삭제 (0) | 2021.07.02 |
[Django] 03. 장고 관리자(admin) + 서버 실행! (0) | 2021.06.28 |
[Django] 02. 장고 app 만들기 + db model 설정 (0) | 2021.06.23 |
[Django] 01. Django 프로젝트 생성 + Mysql 연동 (0) | 2021.06.22 |
댓글