【问题标题】:django 1.7 relation "auth_user" does not exist in migrate but fine in testsdjango 1.7 关系“auth_user”在迁移中不存在,但在测试中很好
【发布时间】:2015-08-12 23:49:35
【问题描述】:

我正在将 django-1.5 项目更新为 django-1.7.2,并且在迁移时我不断收到“关系“auth_user”不存在”。但是,如果我运行 python manage.py test -v2 来查看数据库创建/迁移的过程

Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying subscription.0001_initial... OK

迁移结果很好。我错过了一步吗?我相信人们不再需要简单地同步数据库了

python manage.py migrate

但这样做并不适用于 django 应用程序的迁移。

注意:我没有使用自定义 User 类,只是使用常规 django.contrib.auth.models.User

【问题讨论】:

    标签: python django migration


    【解决方案1】:

    您是否已经在真实数据库上伪造了身份验证迁移?

    尝试检查

    select * from django_migrations where app='auth'
    

    如果存在任何记录,请删除它们。

    【讨论】:

    • 是的,就是这样,我很傻。我使用了与之前已经拥有这些表的测试数据库相同的名称,我认为它完全是空的。非常感谢
    【解决方案2】:

    你需要做两件事:

    python manage.py makemigrations
    

    然后

    python manage.py migrate
    

    迁移确实应用了迁移,但首先需要创建它们。这两个步骤或多或少是在替换旧的syncdb。

    【讨论】:

    • 是的,我这样做很奇怪,但我仍然收到此错误。然后我尝试 python manage.py makemigrations auth = "No changes detected in app 'auth'" 或 python manage.py migrate auth = "No migrations to apply" 好像已经应用了迁移但它们还没有
    猜你喜欢
    • 2018-03-25
    • 2017-07-01
    • 2019-02-04
    • 2017-03-25
    • 2018-09-04
    • 2015-02-02
    • 2014-09-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多