You are trying to change the nullable field ~~ on ~~ to non-nullable without a default; we can't do that (the database needs something to populate existing rows).
Please select a fix:
1) Provide a one-off default now (will be set on all existing rows with a null value for this column)
2) Ignore for now, and let me handle existing rows with NULL myself (e.g. because you added a RunPython or RunSQL operation to handle NULL values in a previous data migration)
3) Quit, and let me add a default in models.py
Select an option:
nullable 필드를 non-nullable 필드로 바꾸면서 default값을 주지 않고 makemigrations를 하면 이런 메시지가 나옵니다. 이미 DB에는 NULL값이 들어가있는데, 그 필드가 non-nullable로 바뀌는데 default값이 없으면 이걸 어떻게 바꿔야 할까요? 장고는 이걸 처리좀 해달라고 메시지를 띄우는 겁니다.
선택지가 세가지 있습니다
- 1. one-off default값을 제공한다: 현재 NULL인 필드에 들어갈 값을 제공해주는 겁니다
- 2. Ignore for now: 무시한다는 것 같은데.. RunPython 또는 RunSQL을 쓰는 사람에게 해당되는 내용이고 전 잘 모르겠습니다
- 3. 취소하고 모델에 default 값 추가하기
오류 메시지를 봐도 놀라지 마시고 어떻게 해야 좋을지 좀 생각해서 적용하시면 됩니다
반응형
'프로그래밍 > Python' 카테고리의 다른 글
[Python] dict를 복사하면서 특정 필드를 빼고 복사하는 법 (0) | 2021.01.13 |
---|---|
[Python] enum value로 @dataclass 사용하기 (0) | 2021.01.13 |
[Django] 마이그레이션할 때 Fixed DateTime Warning 해결방법 (0) | 2021.01.07 |
[Django] "value too long for type character varying" (0) | 2021.01.05 |
[Django] circular import 해결방법 (0) | 2021.01.05 |