У меня есть рабочий проект Django 1.6, чем я модернизирую до 1.8. У меня есть модель пользовательского пользователя в приложении mainapp
который выглядит следующим образом:Django 1.8: перерыв миграции с AbstractBaseUser
class CustomUser(AbstractBaseUser, PermissionsMixin):
...
manage.py migrate
или syncdb
потерпеть неудачу со следующей ошибкой:
Operations to perform:
Synchronize unmigrated apps: gis, gunicorn, staticfiles, guardian, messages, captcha, corsheaders, bootstrapform
Apply all migrations: sessions, admin, sites, auth, contenttypes, mainapp
Synchronizing apps without migrations:
Creating tables...
Creating table guardian_userobjectpermission
Creating table guardian_groupobjectpermission
Creating table corsheaders_corsmodel
Running deferred SQL...
...
django.db.utils.ProgrammingError: relation "auth_permission" does not exist
Я следовал ответ в Django 1.8 RC1: ProgrammingError when creating database tables и побежал makemigrations для приложения (и все другие приложения, которые можно перенести, включая auth
). Никаких изменений не обнаружено ни для одного из них, и после этого migrate
продолжает сбой. Как я могу это исправить?
Hacky РЕШЕНИЕ: я могу получить ход проекта, комментируя все мои приложения в INSTALLED_APPS
, а затем добавить их в определенном порядке и работает migrate
как я иду вперед. WTF ... должен быть правильный способ сделать это.
Возможно, вам потребуется изменить исходную миграцию mainapp, чтобы добавить зависимость от auth. –
@ DanielRoseman Как? Я новичок в миграциях. – kontextify
См. [Docs] (https://docs.djangoproject.com/en/1.8/topics/migrations/#migration-files) - просто отредактируйте список 'dependencies' в вашей миграции на ссылку' ('auth', ' 0001_initial ') '. –