Django «миграция применяется до ее зависимости» при выполнении любых команд миграции

Я использую Django 3.0.2, который подключен к локальной базе данных MySQL. В моем текущем проекте есть 2 приложения: «accounts» и «home».

Я удалил все таблицы в своей базе данных после обновления некоторых полей моей модели и удалил все файлы в папке миграции, кроме __init__.py. Попытка запустить сервер разработки показывает ошибку: Dependency on app with no migrations: accounts, поэтому я запустил python manage.py makemigrations, который вернул это

Migrations for 'accounts':
  accounts\migrations\0001_initial.py
    - Create model User
Migrations for 'home':
  home\migrations\0001_initial.py
    - Create model Idea
    - Create model Reply

После этого при запуске сервера выдается предупреждение о том, что

У вас есть 1 непримененная миграция. Ваш проект может работать неправильно, пока вы не примените миграции для приложений: учетных записей. Запустите «python manage.py migrate», чтобы применить их.

Это дает мне InconsistentMigrationHistory исключение: Migration admin.0001_initial is applied before its dependency accounts.0001_initial on database 'default'


Запуск python manage.py showmigrations возвращает это:

accounts
 [ ] 0001_initial
admin
 [X] 0001_initial
 [X] 0002_logentry_remove_auto_add
 [X] 0003_logentry_add_action_flag_choices
auth
 [X] 0001_initial
 [X] 0002_alter_permission_name_max_length
 [X] 0003_alter_user_email_max_length
 [X] 0004_alter_user_username_opts
 [X] 0005_alter_user_last_login_null
 [X] 0006_require_contenttypes_0002
 [X] 0007_alter_validators_add_error_messages
 [X] 0008_alter_user_username_max_length
 [X] 0009_alter_user_last_name_max_length
 [X] 0010_alter_group_name_max_length
 [X] 0011_update_proxy_permissions
contenttypes
 [X] 0001_initial
 [X] 0002_remove_content_type_name
home
 [X] 0001_initial
sessions
 [X] 0001_initial

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


person ycc    schedule 10.03.2020    source источник
comment
запустите миграцию для определенных приложений manage.py migrate accounts, затем запустите другую миграцию   -  person hansTheFranz    schedule 10.03.2020
comment
Это все еще дает мне ошибку InconsistentMigrationHistory   -  person ycc    schedule 10.03.2020


Ответы (1)


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

python manage.py makemigrations account
python manage.py makemigrations home
python manage.py migrate
person Sangam Jung Gauli    schedule 10.03.2020