Django自定义身份验证用户模型和重置迁移

时间:2016-06-07 11:51:55

标签: django

我正在尝试在我的设置中设置自定义AUTH_USER_MODEL,但由于过去的某些迁移,它会抛出一个CircularDependencyError。 (之前我使用过普通用户)

我该如何解决这个问题?我不关心数据库,它只是一个测试对象。但我可以重置/删除迁移,还是需要启动一个全新的项目?

3 个答案:

答案 0 :(得分:1)

Django警告不要更改AUTH_USER_MODEL in the docs

  

更改AUTH_USER_MODEL会对您的数据库结构产生很大影响。它更改了可用的表,它将影响外键和多对多关系的构造。如果您打算设置AUTH_USER_MODEL,则应在创建任何迁移或首次运行manage.py迁移之前对其进行设置。

     

makemigrations不支持在创建表后更改此设置,这将导致您必须手动修复架构,从旧用户表移植数据,并可能手动重新应用某些迁移。

如果您不关心数据库,那么我会尝试删除数据库,删除现有的迁移文件并再次运行makemigrations

答案 1 :(得分:0)

只需删除数据库中的迁移文件和条目,即可轻松删除迁移。然后,您可以再次迁移以创建“第一次”迁移。

答案 2 :(得分:0)

正如我所说的here,只需删除文件浏览器中的迁移文件夹文件db.sqlite3(或任何您选择的数据库语言),成为您项目目录中的数据库文件)。

仅当您确定可以完全丢失整个数据库并且必须通过所有迁移以及数据输入重新开始时,才执行此操作。