Ошибка 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.

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


person Ben    schedule 19.02.2015    source источник
comment
Думаю, я оказался здесь, потому что изменил порядок INSTALLED_APPS. другой причины пока не вижу   -  person Denis    schedule 26.04.2021


Ответы (3)


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

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

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
person Burhan Khalid    schedule 19.02.2015
comment
Во-первых, большое спасибо за попытку помочь мне. Теперь моя локальная среда обновлена ​​и работает так, как я ожидаю. Когда я запускаю git status, он говорит, что мои файлы обновлены, а когда я запускаю git push heroku master, он говорит, что все обновлено. Тем не менее, когда я запускаю heroku run python manage.py migrate, я получаю сообщение об ошибке В ваших моделях есть изменения, которые еще не отражены в миграции, как я описал. Любые другие идеи или предложения для устранения неполадок? - person Ben; 19.02.2015
comment
Тогда кажется, что ваши репозитории не синхронизированы; у вас есть неотслеживаемые файлы? - person Burhan Khalid; 19.02.2015
comment
Если вы имеете в виду мой файл .gitignore, это копия этого github .com/github/gitignore/blob/master/Python.gitignore и ничего лишнего - person Ben; 19.02.2015
comment
Я удалил свое приложение внутри heroku, но когда я добавил его обратно, я все равно получаю ту же ошибку! Есть ли шанс, что я мог бы нанять вас, чтобы помочь мне во всем этом разобраться? - person Ben; 19.02.2015
comment
Что вы получаете с этим: git ls-files . --exclude-standard --others ? - person Burhan Khalid; 19.02.2015
comment
Это последнее, что я могу предложить — вам нужно проверить, есть ли разница между вашей кодовой базой Heroku и тем, что у вас есть сейчас; предполагая, что нет невыполненных коммитов .. попробуйте это git fetch heroku && git log -p master..heroku/master - person Burhan Khalid; 19.02.2015
comment
Неудачно : /. Я очень ценю вашу помощь, и мое предложение остается в силе, если вы заинтересованы. - person Ben; 19.02.2015
comment
Я только что заметил, что у меня есть два файла db.sqlite3 - один в корне моего проекта, лигамастер, а другой внутри лигимастер/лигамастер. Это нормально или это может быть причиной моей проблемы? - person Ben; 19.02.2015
comment
Обновление: ошибка связана с этой проблемой github.com/pennersr/django-allauth/issues /836 - person Ben; 19.02.2015

  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
person ged flod    schedule 18.09.2019
comment
Вам никогда не нужно делать миграции на сервере heroku. Вы всегда должны делать миграции локально, а затем отправлять их на сервер. вам нужно только мигрировать на сервер. - person Shahar Gino; 03.06.2021

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

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

person Ryan Allen    schedule 19.02.2015
comment
Спасибо. allauth.socialaccount выдавал мне ошибку. Я закончил тем, что уронил его, и после этого все мигрировало нормально. Другие люди сообщили об ошибке здесь github.com/pennersr/django-allauth/issues/836. Надеюсь, они придумают патч. - person Ben; 20.02.2015