(모델 예시) [myapp/models.py]

class Item:
    pass
  1. 임시로 null=True 설정하고 필드 추가하기
class Item:
    name = models.CharField('이름', null=True)
  1. 마이그레이션 파일 생성
$ ./manage.py makemigrations

Migrations for 'myapp':
  myapp/0002_add_item_name.py
    - Add field name to item
  1. 추가한 필드를 null=False로 수정
class Item:
    name = models.CharField('이름', null=False)  # null=False를 안써도 됨
  1. 마이그레이션 파일 2차 생성 - DB의 Item 테이블에 행이 없다면 2번을 선택
$ ./manage.py makemigrations

You are trying to change the nullable field 'name' on item 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: 2

Migrations for 'myapp':
  myapp/0003_alter_item_name.py
    - Alter field name on item