본문 바로가기
Programming

Django Heroku Database Migrate Error

by 하하호호 2021. 10. 8.
반응형

Your models in app(s): 'app1', 'app2', 'app3' have changes that are not yet reflected in a migration, and so won't be applied.
  Run 'manage.py makemigrations' to make new migrations, and then re-run 'manage.py migrate' to apply them.

 

Error :

헤로쿠 서버에 DB를 등록하는 과정에서 

다음 에러가 발생하는 경우가 존재한다.

헤로쿠에 python manage.py migrate를 

계속 진행하는데, 서버 DB에 migrate가

정상적으로 되지 않는다면,

다음을 참고해서 fix 하길 바란다.

 

이 에러가 발생하는 이유는

로컬에서 migrations 한 DB가

헤로쿠 서버에 정상적으로

migration이 안됬기 때문이다.

 

로컬에서 migration을 다시 진행하고,

정상적으로 DB생성이 완료 된 후에

헤로쿠 서버에 migration을 다시 

진행해준다.

 

Django 같은 경우

ORM으로 DB를 관리하기 때문에,

SQL로 DB를 설계 해주지 않아도 되지만,

DB migration 작업은 신경써서 

서버 + 로컬 둘다 해줘야 한다.

 

Solution : 

 

  • 1. (add/modify some someapp/models.py) : models.py를 수정한다.
  • 2. python manage.py makemigrations someapp : 로컬에서 migrations을 진행
  • 3. python manage.py migrate : 로컬에서 migrate(모델 DB로 반영) 진행
  • 4. git add someapp/migrations/*.py (to add the new migration file) : 변경사항을 git에 add
  • 5. git commit -m "added migration for app someapp" : 변경사항을 git에 commit
  • 6. git push heroku : 변경사항을 git에 push
  • 7. heroku run python manage.py migrate : 헤로쿠에 migrate 재진행

반드시 로컬에서 migrate를 모두 진행하고,

git에 변경사항을 push 하고 난 뒤에

heroku 서버에 migrate를 해줘야

DB 변경사항이 서버에 정상적으로

반영된다.

 

반응형

댓글