Ошибка django.db.migrations.exceptions.InconsistentMigrationHistory как часть обновления с 6.0.1 до 6.1
Среда: запуск Kiwi в Docker-контейнерах из хранилища Docker в Windows Server 2016. Я не вносил изменений в свой клон репозитория Kiwi или образы Docker.
Репро:
1. Выполните шаги по обновлению в блоге, чтобы обновить / перейти с Kiwi 6.0 до 6.0.1
2. Повторите шаги для обновления / перехода с Kiwi 6.0.1 до 6.1
Ожидать:
Нет ошибок
Результат:
Исключение во время миграции, я щелкнул по своему экземпляру Kiwi после выполнения команды migrate и не увидел ничего явно неправильного в данных или связях между случаями, планами и запусками. Но первые дни...
Полный стек вызовов:
C:\Kiwi>docker exec -it kiwi_web /Kiwi/manage.py migrate
Traceback (most recent call last):
File "/Kiwi/manage.py", line 12, in <module>
execute_from_command_line(sys.argv)
File "/venv/lib/python3.6/site-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
utility.execute()
File "/venv/lib/python3.6/site-packages/django/core/management/__init__.py", line 375, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/venv/lib/python3.6/site-packages/django/core/management/base.py", line 316, in run_from_argv
self.execute(*args, **cmd_options)
File "/venv/lib/python3.6/site-packages/django/core/management/base.py", line 353, in execute
output = self.handle(*args, **options)
File "/venv/lib/python3.6/site-packages/django/core/management/base.py", line 83, in wrapped
res = handle_func(*args, **kwargs)
File "/venv/lib/python3.6/site-packages/django/core/management/commands/migrate.py", line 85, in handle
executor.loader.check_consistent_history(connection)
File "/venv/lib/python3.6/site-packages/django/db/migrations/loader.py", line 297, in check_consistent_history
connection.alias,
django.db.migrations.exceptions.InconsistentMigrationHistory: Migration management.0013_remove_env is applied before its dependency testruns.0019_remove_testruntag_user on database 'default'.
1 ответ
Ага, этого не должно быть.
Repro: 1. Выполните шаги по обновлению в блоге, чтобы обновить / перейти с Kiwi 6.0 на 6.0.1
Можете ли вы описать шаги точно? Если вы сделали git pull
тогда ваш docker-compose.yml указывает на kiwitcms/kiwi:latest
и вы должны вручную изменить это для промежуточного шага обновления.
- Повторите шаги для обновления / перехода с Kiwi 6.0.1 до 6.1
Когда вы получили трассировку, до шага 2 или после шага 2?
Примечание. Это похоже на https://github.com/kiwitcms/Kiwi/issues/561 и мы мало что можем с этим поделать.
Для отладки (я надеюсь, у вас есть резервная копия) вам нужно вернуться к предыдущей версии (6.0, как вы говорите), затем обновить до 6.0.1 и опубликовать ./manage.py showmigrations
, Затем попробуйте обновить до 6.1 и снова проверить showmigrations, чтобы увидеть, если все применяется.
Примечание: в случае трассировки во время миграции миграции не применялись, поэтому будет безопасно снова попытаться выполнить миграцию, когда вы узнаете, какая версия является начальной и целевой версией, до которой вы обновляетесь.