我尝试在我的设置中设置自定义的AUTH_USER_MODEL,但由于一些以前的迁移而抛出CircularDependencyError错误。(我之前使用的是常规用户模型)
我该怎么解决?我不关心数据库,只需要一个单独的测试对象。但我能重置/移除迁移吗,还是需要开始一个全新的项目?
我尝试在我的设置中设置自定义的AUTH_USER_MODEL,但由于一些以前的迁移而抛出CircularDependencyError错误。(我之前使用的是常规用户模型)
我该怎么解决?我不关心数据库,只需要一个单独的测试对象。但我能重置/移除迁移吗,还是需要开始一个全新的项目?
AUTH_USER_MODEL
:(参见文档):
更改
AUTH_USER_MODEL
会对数据库结构产生重大影响。它会改变可用的表,并影响外键和多对多关系的构建。如果你打算设置AUTH_USER_MODEL
,你应该在创建任何迁移或第一次运行manage.py
migrate之前设置它。在创建了表后更改此设置不受
makemigrations
支持,将导致您必须手动修复模式,从旧用户表中传输数据,并可能手动重新应用一些迁移。
如果您不关心数据库,则可以尝试删除数据库,删除现有的迁移文件,然后再次运行makemigrations
。
db.sqlite3
文件(或者您选择的任何数据库语言,然后在项目目录中会有一个数据库文件)。
只有在确定可以完全放弃整个数据库并且需要重新开始所有迁移和数据输入时才执行此操作。
您可以通过简单地删除迁移文件和数据库中的条目来轻松删除迁移。然后,您可以再次进行迁移以创建您的“第一个”迁移。
makemigrations
时会创建一个新的历史记录。 - Alex
migrations
文件夹中除了__init__.py
之外的所有文件。如果您删除整个迁移文件夹,我相信您将不得不运行./manage.py makemigrations <appname>
为该应用程序创建初始迁移。 - Alasdair