【问题标题】:Create Django app with no User model - 3.1.3 wants to migrate auth_user?创建没有用户模型的 Django 应用程序 - 3.1.3 想要迁移 auth_user?
【发布时间】:2020-11-17 15:53:54
【问题描述】:

我有一个 Django 应用程序,它已经愉快地运行了很长一段时间(大约 2 年)。

它目前在 3.0.10 - 当我尝试升级到 3.1.3 时,它说 auth 应用程序有迁移。不用担心!以前从来没有问题...

我运行python manage.py migrate 并得到以下错误:

"Cannot find the object "auth_user" because it does not exist or you do not have permissions."

我想这是真的,因为我们在这个应用程序中根本没有User 模型。没有auth_user 表,这是正确的。在其他应用程序中,我们有一个 AbstractUser 路由到名为:org_user 的表 - 但同样:

这个特定的应用程序(和项目)没有任何关联的 User 模型

显然这(显然,现在)会导致一些问题。

关于如何解决这个问题的任何想法?我曾考虑从已安装的应用程序中删除 auth 并尝试过,但在尝试 runserver 时会导致更多问题。

【问题讨论】:

    标签: python django django-models migration


    【解决方案1】:

    您可以使用--fake 选项伪造迁移:

    python manage.py migrate --fake auth
    python manage.py migrate
    

    但我怀疑您收到的错误可能是项目设计问题的症状,例如未正确设置settings.AUTH_USER_MODEL

    【讨论】:

    • 没有AUTH_USER_MODEL,这是正确的。感谢 --fake 标志,没有意识到这是一件事!我应该澄清 - 经过长时间的复杂事情:在生产中存在该表,因此迁移工作。在本地,它没有 - 标志起到了作用:)
    【解决方案2】:

    解决方案 1:- 运行这些命令:-

        python manage.py migrate auth
    
        python manage.py migrate
    

    解决方案 2:- 尝试将您的项目复制到另一个文件夹中,然后运行迁移。

    【讨论】:

      猜你喜欢
      • 2016-04-14
      • 2017-09-15
      • 2019-06-23
      • 1970-01-01
      • 2017-03-20
      • 2018-10-24
      • 2014-12-29
      • 2016-05-10
      • 2019-06-19
      相关资源
      最近更新 更多