situation
이 메세지는 makemigrations 명령을 실행했을 때, 해당 앱에서 변경 사항이 감지 되지 않았음을 나타낸다.
즉, 이미 마이그레이션을 생성하여 모든 변경 사항을 적용되었거나, 새로운 변경 사항이 없는 경우에 나타날 수 있다.
그러나 모델을 추가했지만 마이그레이션 파일에 변경 내역이 반영되지 않는 경우, 아래 단계에 따라 문제를 해결할 수 있다.
solution
1. 앱 등록 확인
- 모델이 포함된 앱이 'INSTALLED_APPS' 설정에 등록되어 있는지 확인한다.
- 'settings.py' 파일을 열고 해당 앱이 INSTALLED_APPS 리스트에 포함되어 있는지 확인한다.
- 만약 없는 경우, 해당 앱을 추가해야 한다.
아마 대부분의 경우가 앱 등록을 안 해서 생긴 오류일텐데 나는 다른 원인이였다.
2. models.Model 상속 확인
from django import forms
class MyForm(forms.Form): #models.Model을 상속받아야 데이터베이스와 연결 가능
GENDER_CHOICES = [
('M', '남성'),
('F', '여성'),
('O', '기타'),
]
gender = forms.ChoiceField(choices=GENDER_CHOICES, required=True)
위와 같이 models.Model를 상속받지 않으면 해당 클래스는 데이터베이스와 연결되지 않는다. models.Model은 django의 모델을 정의하는 기본 클래스이며, 이를 통해 모델 필드와 데이터베이스 테이블 간의 매핑이 이루어진다. 이렇게 매핑이 이루어져야 마이그레이션을 통해 데이터베이스 스키마가 생성되거나 변경된다.
반응형