Ошибка Django Heroku "В ваших моделях есть изменения, которые еще не отражены в миграции"

Недавно я добавил модель в свое приложение (UserProfile), и когда я нажал изменения в Heroku, я, кажется, случайно запустил heroku run python manage.py makemigrations. Теперь, когда я пытаюсь запустить heroku run python manage.py migrate, я получаю ошибку ниже

(leaguemaster) benjamins-mbp-2:leaguemaster Ben$ heroku run python manage.py migrate
Running `python manage.py migrate` attached to terminal... up, run.1357
Operations to perform:
  Synchronize unmigrated apps: allauth
  Apply all migrations: auth, admin, socialaccount, sites, accounts, account, contenttypes, sessions, leagueapp
Synchronizing apps without migrations:
  Creating tables...
  Installing custom SQL...
  Installing indexes...
Running migrations:
  No migrations to apply.
  Your models 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.

Как это исправить? Пожалуйста, помогите!

Ответ 1

Вам нужно сначала создать миграцию локально, добавить их в свой репозиторий, зафиксировать файлы с новыми миграциями, а затем нажать на герою.

Последовательность выглядит примерно так:

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

Ответ 2

Похоже, вы запустили makemigrations после того, как вы внесли изменения в свою модель, но до того, как у вас был начальный файл миграции. Попытайтесь вернуть свое приложение к состоянию, которое было до того, как вы добавили новую модель, и снова запустите makemigrations, чтобы создать начальную миграцию. Затем добавьте свои обновления и запустите makemigrations еще раз. Это создаст вторую миграцию из вашей исходной структуры данных в новую обновленную. Затем попробуйте выполнить развертывание.

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

Ответ 3

  1. Делайте миграции локально
$ python manage.py makemigrations && python manage.py migrate
  1. Передайте изменения и отправьте их на сервер
$ git add --all
$ git commit -m "Fixed migrate error"
$ git push heroku master
  1. Теперь сделайте миграцию на сервере
$ heroku run python manage.py makemigrations
$ heroku run python manage.py migrate

Вы также должны быть уверены, что не игнорировали этот путь миграции в своем

.gitingnore