Невозможно применить миграции к базе данных Heroku postgres

#python #django #postgresql #heroku

Вопрос:

База данных-postgres, а фреймворк-django. Запуск миграции отлично работает на локальном хосте, но не на сервере Heroku. Я не могу удалить или сбросить базу данных, потому что она содержит важные данные. Я создал резервную копию базы данных, сбросил ее, и все миграции сработали, но когда я восстановил резервную копию, она вернулась в прежнее состояние миграции, и проблема не исчезла. Я не знаю, как перенести только данные из резервной копии в базу данных сброса вместо того, чтобы также переносить старую структуру базы данных.

Когда я запускаю heroku run python manage.py migrate , я получаю эту ошибку:

 No migrations to apply.  Your models in app(s): 'app1', 'app2', 'app3', 'app4', 'users' 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.  

Использование heroku run python manage.py makemigrations app-name тоже не помогает.

Есть ли способ сопоставить и перенести только пользовательские данные из старой базы данных в новую? Или есть способ заставить старую базу данных принять новую структуру миграции? Я был бы рад, если бы мне помогли. Спасибо.

Комментарии:

1. Каков же результат heroku run python manage.py showmigrations ?

2. @JPG Это показывает миграции, которые у меня есть на локальном хосте

3. Вы позаботились о том, чтобы зафиксировать свои файлы миграции и перенести эти фиксации в Heroku?

4. @Крис, да, я сделал это

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