Django Heroku Error “Your models have changes that are not yet reflected in a migration”

前端 未结 3 655
北荒
北荒 2020-12-28 18:49

I recently added a model to my app (UserProfile) and when I pushed the changes to Heroku, I think I accidentally ran heroku run python manage.py makemigrations.

相关标签:
3条回答
  • 2020-12-28 19:07

    You need to first create the migrations locally, add them to your repository, commit the files with the new migrations and then push to heroku.

    The sequence is something like this:

    1. (add/modify some someapp/models.py)
    2. python manage.py makemigrations someapp
    3. python manage.py migrate
    4. git add someapp/migrations/*.py (to add the new migration file)
    5. git commit -m "added migration for app someapp"
    6. git push heroku
    7. heroku run python manage.py migrate
    
    0 讨论(0)
  • 2020-12-28 19:26

    It sounds like you ran makemigrations after you made changes to your model but before you had an initial migration file. Try to revert your app to the state it was before you added the new model and run makemigrations again to create the initial migration. Then add your updates back in and run makemigrations once more. This will create a second migration from your initial data structure to the new updated one. Then try your deployment.

    https://docs.djangoproject.com/en/1.7/topics/migrations/#adding-migrations-to-apps

    0 讨论(0)
  • 2020-12-28 19:29
    1. Make migrations locally
    $ python manage.py makemigrations && python manage.py migrate
    
    1. Commit changes and push it on the server
    $ git add --all
    
    $ git commit -m "Fixed migrate error"
    
    $ git push heroku master
    
    1. Now make migrations on the server
    $ heroku run python manage.py makemigrations
    
    $ heroku run python manage.py migrate
    

    You have also be sûre that you did'nt ignore that migrations path in your

    .gitingnore
    
    0 讨论(0)
提交回复
热议问题