반응형
일반적으로 django에서는 models.py에 정의를 하고 다음과 같이 명령어를 실행하면 db table들이 생성된다.
python manage.py makemigrations
python manage.py migrate
이번에 발생한 문제점은 board_vote라는 테이블에 contraints를 추가하면서 발생하였다. author와 question을 묶어서 유니크로 쓰고 싶었던 상황이라 다음과 같이 Meta를 추가 하였다.
class Meta:
db_table = 'board_vote'
constraints = [
models.UniqueConstraint(fields=['author', 'question'], name='vote of constraint')
]
이렇게 추가를 하고 위에 작성했던 명령어를 실행하니 제대로 동작되지 않음...
그래서 다음과 같은 것들을 시도했었다.
1. migrations 폴더에 있는 *_initial.py파일들을 삭제 후 실행 -> 문제 발생
2. 실제 db에 접속해서 테이블을 삭제 후 makemigrations을 실행 -> 문제 발생
python manage.py dbshell
SELECT * FROM sqlite_master WHERE type='table';
DROP TABLE appname_modelname;
.exit
위의 명령을 순서대로 치고 select에서 appname_modelname을 알아내어서 drop 시키면된다.
3. 마지막으로 migrations 폴더에 있는 *_initial.py에 있는 파일들을 삭제, db도 삭제(db.sqlite3) 후 makemigrations을 실행 -> 동작은 하지만 기존 데이터 다 사라졌음....
일단 현재는 개발중인 것이라 크게 상관은 없지만, 정확하게 어떻게 대응을 해야할지 반드시 살펴봐야 한다..(나중에)
django를 공부할수록 자꾸 숙제가 쌓이는 느낌이다.
일단 keep going...계속 나아가보자.
728x90
'python' 카테고리의 다른 글
[python-django]summernote 설치 방법(이미지 업로드까지) - 2부(완성) (0) | 2022.10.21 |
---|---|
[python-django]summernote 설치 방법(이미지 업로드까지) - 1부 (0) | 2022.10.21 |
[python-django] post로 데이터 전달 시 csrf 토큰 관련 (1) | 2022.10.18 |
[python-django]MVT 패턴 그리고 MVC 패턴 (0) | 2022.10.17 |
[python-django] next 파라미터에 대한 궁금증 (0) | 2022.10.11 |
댓글