2016-06-07 2 views
1

Я пытаюсь установить пользовательские AUTH_USER_MODEL в своих настройках, но это бросает мне CircularDependencyError из-за некоторых прошлых миграций. (Раньше я использовал обычного пользователя)Django Custom Auth User Model и reseting Migrations

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

ответ

0

Джанго предостерегает от изменения AUTH_USER_MODELin the docs:

Изменение AUTH_USER_MODEL имеет большое влияние на вашу структуру базы данных. Он изменяет доступные таблицы и влияет на построение внешних ключей и отношений «многие ко многим». Если вы намерены установить AUTH_USER_MODEL, вы должны установить его перед созданием любых миграций или запуском manage.py в первый раз.

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

Если вам не нужна база данных, я бы попытался удалить базу данных, удалив существующие файлы миграции и снова запустив makemigrations.

+0

Спасибо! Могу ли я просто удалить папку или мне нужно сделать что-нибудь еще. (Я помню, что у меня были проблемы при удалении таких миграций раньше) – user3199840

+0

Im using Django 1.8 .. – user3199840

+1

Я бы удалил все файлы в папке 'migrations', кроме' __init __. Py'. Если вы удалите всю папку миграции, я верю, что вам нужно будет запустить './mange.py makemigrations ', чтобы создать начальную миграцию для этого приложения. – Alasdair

0

Вы можете легко удалить миграцию, просто удалив файлы миграции и записи в своей базе данных. Затем вы можете выполнить миграцию снова, чтобы создать «первую» миграцию.

+0

Спасибо. Вы уверены в этом? Как его удалить? Просто удаление или освобождение папки на каждом уровне приложения? Я помню, некоторые проблемы с удалением миграции, как это раньше. Я использую 1.8 – user3199840

+1

Просто удалите файлы (кроме __init__.py) в папках переноса. Затем удалите записи в таблице миграции вашей базы данных. Это вполне безопасно, особенно если это тестовый проект. Все, что вы делаете, это удаление истории Django ваших миграций. Модели не изменяются, и новая история создается при следующем запуске 'makemigrations' – Alex

Смежные вопросы