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 값 추가하기

오류 메시지를 봐도 놀라지 마시고 어떻게 해야 좋을지 좀 생각해서 적용하시면 됩니다

반응형