DB 모델링 이후 마이그레이션 & 마이그레이트를 해주었고, 데이터입력까지 진행되고 있는 상태에서
DB 모델 구조를 변경하였다. 추가된 컬럼은 null 값을 갖을 수 없는데 이미 입력된 데이터는 존재하는 상태일때 마이그레이션을 진행하면 아래와 같은 문구가 출력된다.
You are trying to add the field 'create_at' with 'auto_now_add=True' to userprofile without a default;
the database needs something to populate existing rows.
1) Provide a one-off default now (will be set on all existing rows)
2) Quit, and let me add a default in models.py
Select an option:
위에서도 언급했지만 원인은 아래와 같다.
- 테이블에 이미 데이터가 존재한다.
- 테이블에 컬럼을 추가하였고, 마이그레이션을 통해 적용하려한다
- 추가되는 컬럼은 null값을 갖을수 없는 설정이 적용되어 있다
- 이미 존재하는 데이터는 null값이 입력 될 수밖에 없는 상황, 하지만 정보가 없으니 null일수밖에 없다
너는 어떻게 할래 1번 2번에서 골라보렴~
- 1번 선택하여 진행
- 두번째 선택 역시 1번 선택하여 진행
- 빈칸에는
None
을 입력하여 마무리한다.