【问题标题】:ProgrammingError at /api/accounts/ relation does not exist/api/accounts/ 关系中的 ProgrammingError 不存在
【发布时间】:2018-03-10 15:55:17
【问题描述】:

我在 Windows 10 上有这个 django 应用程序

  • python 3.6.2
  • django 1.11.5
  • djangorest 3.6.4
  • postgreSql 9.6

我在帐户应用程序中使用自定义用户模型(AppUser),并且我的设置文件中有 AUTH_USER_MODEL = 'accounts.AppUser'

我按照各种来源的建议按此顺序迁移

  1. migrate auth
  2. migrate accounts
  3. migrate 迁移所有其他应用

迁移按预期成功。当我尝试通过可浏览的 api 访问 api 时,问题就开始了

/api/accounts/ 处的编程错误 关系“accounts_appuser”不存在 第 1 行:SELECT COUNT(*) AS "__count" FROM "accounts_appuser" WHERE"

我已经删除了所有 .pyc 文件,再次创建了迁移并得到了同样的错误。通过反复尝试的过程有时会报告迁移报告

没有要应用的迁移

我开始认为问题出在 postgre

【问题讨论】:

  • 简单的解决方案删除和创建数据库 - 你可以吗?
  • 我已经做了 1000 次了
  • 显示你的 settings.py INSTALLED_APPS, DATABASES, 你用来删除数据库的命令, urls

标签: django postgresql django-rest-framework


【解决方案1】:

那里的错误是帐户应用程序中 AppUser 模型的数据库表不存在。

我认为这里的问题可能是您在帐户应用程序上haven't run the makemigrations mgmt command 创建迁移,这将反过来创建数据库表。例如:

python manage.py makemigrations accounts

您可能还想为整个应用运行 makemigrations

【讨论】:

    【解决方案2】:

    我做了几件事,但不确定哪一个有效

    首先我重新安装了 postgre

    他们按照以下顺序手动应用迁移,身份验证、帐户,然后是已安装应用中的所有其他应用一个接一个

    然后我尝试了可浏览的 api 及其工作。

    我还意识到,即使您不使用设置文件,您也必须保留它

    【讨论】:

      【解决方案3】:

      就我而言,我遇到了类似的问题。原因是我忘记将我的应用程序注册到 settings.py。如果您忘记注册您的应用程序,请进行迁移,并且迁移不会识别任何错误。然后你会收到消息

      No migrations to apply
      

      确保您已将应用注册到 settings.file INSTALLED APPS。

      INSTALLED_APPS = [
       -----HERE----
      ]
      

      【讨论】:

        【解决方案4】:

        我建议你运行这两个命令来确定,

        1. python manage.py makemigrations

        然后

        1. python manage.py makemigrations [name_of_app]

        此后,运行迁移应用程序,这样您的应用程序就会为您的所有项目和应用程序创建迁移。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-10-25
          • 2013-05-06
          • 2020-03-06
          • 2023-03-14
          • 1970-01-01
          • 2018-05-23
          • 2016-05-01
          • 2016-04-11
          相关资源
          最近更新 更多