[Django] 변경 항목이 있음에도 migrate 했을때 'No migrations to apply'일 경우


DBdjango_migrations 테이블을 확인해보면 지금까지 migrate를 하면서 생성된 migration 파일 목록이 기록되어 있다. 동일한 App에 대해 migrate를 진행하면서 생성된 파일명이 이미 DB에 기록되어 있다면 Django는 해당 파일을 무시하고 아무 작업도 수행하지 않는다.

예를 들어 P1 프로젝트에서 A라는 이름으로 앱을 만들어서 migrate를 실행했었다면 0001_initial.py라는 파일이 생성됐을 것이고 이미 DB에는 A앱에 대한 0001_initial 파일명이 기록되어 있을 것이다. 이후에 P2 프로젝트를 새로 생성하고 앱 이름을 A라고 만든 후 새로운 모델들을 추가한 다음 migrate를 실행하게 된다면 0001_initial.py라는 파일만 생성되고 아무일도 일어나지 않는다.  이미 A라는 이름의 앱에 대해서 0001_initial이 등록되어 있기 때문에 Django는 아무 작업도 수행하지 않는다.

이런 경우 생성된 파일명을 DB에 기록되지 않은 이름으로 변경한 후 migrate를 실행하면 된다