728x90
반응형
0. 빈 테이블 수정
python manage.py makemigrations
python manage.py migrate
빈 테이블 수정 반영시 이 명령을 실행해주면 되지만,
테이블에 행들이 이미 들어가있는 경우, =테이블과 그 안의 내용까지 전부 다시 입력시켜야 하는 경우는 그럴 수 없다. 싹다 다시 해야한다. 다음 방법을 따라해보라.
1. 테이블 삭제
테이블을 삭제하기 위해 sql을 다뤄야하는데, 두가지 방법이 있다. 하나는 직접 sql커맨드를 사용하는 것이고 다른 하나는 GUI툴을 사용하는 것.
나는 DB browser for SQLite 을 사용한다. 툴 사용법은 쉬우니 sql커맨드를 사용하는 방법만 설명하겠다.
1-1) sql 커맨드(콘솔) 이용
sqlite shell exe 파일을 Scripts 폴더에 넣고 가상환경에서 sql 커맨드 열기
$ python manage.py dbshell
테이블 확인 후,
.tables
테이블 삭제 DROP 명령 실행
drop table [삭제할 테이블명];
2. migrations 폴더 내 파일 삭제(init 제외)
이때 init은 삭제하면 안된다.
3. 마이그레이션 재생성
$ python manage.py makemigrations [appname]
$ python manage.py migrate [appname]
재생성인지먼지는 잘모르고 뒤에 앱이름은 안붙여도 상관없다.
python manage.py sqlmigrate [appname] 0001
그런다음 아래 명령으로 나온 CREATE TABLE 명령을 전부 복사한다.
$ python manage.py sqlmigrate [appname] 0001
6. 복사한 CREATE TABLE 쿼리로 테이블 생성
다시 sql 커맨드를 열어서 명령을 실행해준다.
728x90
반응형
'studies > Back-end' 카테고리의 다른 글
[Unity] Collaborate에 사용자 팀원 추가하기 (0) | 2020.12.26 |
---|---|
[Django] Github를 통해 Pythonanywhere에 프로젝트 배포하기 (2) | 2020.12.07 |
[Django] no such table: django_session 해결 / admin page error (0) | 2020.11.27 |
[Django] url 404 에러 해결하기 (0) | 2020.11.27 |
[MySQL] 명령 프롬포트(콘솔)에서 MySQL 접속, 실행하기 (0) | 2020.11.26 |