Ошибка 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
- Делайте миграции локально
$ python manage.py makemigrations && python manage.py migrate
- Передайте изменения и отправьте их на сервер
$ git add --all
$ git commit -m "Fixed migrate error"
$ git push heroku master
- Теперь сделайте миграцию на сервере
$ heroku run python manage.py makemigrations
$ heroku run python manage.py migrate
Вы также должны быть уверены, что не игнорировали этот путь миграции в своем
.gitingnore