在测试期间更改 Django 迁移应用程序的顺序
Posted
技术标签:
【中文标题】在测试期间更改 Django 迁移应用程序的顺序【英文标题】:Change the order in which Django migrate app during testing 【发布时间】:2015-06-30 04:28:17 【问题描述】:我正在使用从 AbstractBaseUser 类继承的自定义用户模型。当我尝试在 makemigrations 命令后迁移时
django.db.utils.ProgrammingError: 关系“custom_user_users”不存在
发生这种情况是因为 Django 尝试首先迁移依赖于自定义用户模型的其他应用程序。即使我尝试更改包含 INSTALLED_APP 中自定义用户模型的应用程序的顺序,但没有运气。
我知道我可以先强制完全迁移 custom_user 模型,然后让 Django 迁移所有其他模型。这解决了问题,但是在运行测试期间它会按照 Django 决定的顺序运行迁移。
如何更改测试期间迁移应用的顺序?有没有其他方法可以解决这个依赖问题?
我正在使用 Django 1.8
【问题讨论】:
你看过docs.djangoproject.com/en/1.8/topics/migrations/#dependencies。对我来说,它似乎在讨论这个确切的问题。 我已经查看了链接。并且认为这就是问题所在。但是我应该如何解决呢?有什么方法可以决定在测试命令期间应用程序迁移的顺序? 以下答案帮助了我(在测试中禁用迁移)***.com/questions/25161425/… 【参考方案1】:在 settings.py 文件中的 INSTALLED_APP 中将您的应用放在 Django 应用之前
【讨论】:
【参考方案2】:https://pypi.python.org/pypi/django-test-without-migrations 将 --nomigrations 标志添加到 manage.py 测试。像魅力一样工作。
【讨论】:
以上是关于在测试期间更改 Django 迁移应用程序的顺序的主要内容,如果未能解决你的问题,请参考以下文章
如何在托管 = False 的 Django 测试期间创建表?
迁移期间的 Django NodeNotFoundError