我想在我的设置中设置自定义的AUTH_USER_MODEL,但由于过去的某些迁移而引发CircularDependencyError。 (我之前用过普通用户)Django自定义验证用户模型和重置迁移
我该如何解决这个问题?我不关心数据库,它只是一个单一的测试对象。但是,我可以重置/删除迁移,还是需要启动一个全新的项目?
我想在我的设置中设置自定义的AUTH_USER_MODEL,但由于过去的某些迁移而引发CircularDependencyError。 (我之前用过普通用户)Django自定义验证用户模型和重置迁移
我该如何解决这个问题?我不关心数据库,它只是一个单一的测试对象。但是,我可以重置/删除迁移,还是需要启动一个全新的项目?
Django的警告反对改变AUTH_USER_MODEL
in the docs:
更改
AUTH_USER_MODEL
对你的数据库结构有很大的影响。它会更改可用的表,并会影响外键和多对多关系的构造。如果您打算设置AUTH_USER_MODEL
,则应在创建任何迁移或运行manage.py
首次迁移之前对其进行设置。创建表之后更改此设置不受
makemigrations
支持,并且将导致您不得不手动修复您的模式,从旧用户表中移植数据,并且可能需要手动重新应用某些迁移。
如果您不关心数据库,那么我会尝试删除数据库,删除现有的迁移文件并再次运行makemigrations
。
只需删除数据库中的迁移文件和条目,即可轻松删除迁移。然后,您可以再次迁移以创建您的“第一次”迁移。
谢谢。你确定吗?我如何删除它?只需删除或清空每个应用程序级别的文件夹?我记得之前在移除这种迁移时遇到了一些问题。我正在使用1.8 – user3199840
只需删除migrations文件夹中的文件(除了__init__.py)。然后删除数据库的迁移表中的条目。这样做是相当安全的,特别是如果这是一个测试项目。你所做的只是删除Django的迁移历史。模型保持不变,下次运行'makemigrations'时会创建一个新的历史记录 – Alex
谢谢!我可以删除文件夹还是需要做其他任何事情? (我记得在删除这样的迁移时遇到了一些麻烦) – user3199840
Im使用Django 1.8 .. – user3199840
我会删除'__init __。py'之外的'migrations'文件夹中的所有文件。如果您删除整个迁移文件夹,我相信您必须运行'./mange.py makemigrations'来为该应用程序创建初始迁移。 –
Alasdair