繁体   English   中英

Postgres数据库错误:关系不存在

[英]Postgres Database Error: relation does not exist

我正在修复遗留系统的一些问题,并且遇到了一个令我感到惊讶的问题并没有及早发现。 我正在运行Django 1.3并在运行此应用程序时使用postgres 9.1.3。 该系统是用户使用系统其余部分的验证系统。 它使用了Django用户界面的一部分,但大部分都有它自己的'用户'。

当我尝试向用户提供他们的帐户问题时(类似于忘记网站密码),我的问题就出现了。 当我尝试这样做时会抛出此错误:

Database Error at admin/password/user

relation "password_user_answered_questions_id_s" does not exist
LINE 1: SELECT CURRVAL('"password_user_quest...
              ^

有谁知道什么可能导致这个错误? 我已经尝试重置数据库(不认为它会做任何事情但只是想确定)并且还使用phppgadmin在数据库中探测并发现其他所有内容都正确存储,除了这个。 它在分配时使用ManyToMany字段,以便用户可以有多个问题,并且多个用户可以使用问题。

原因很可能是

关系“password_user_answered_questions_id_s”不存在

就像错误消息通知我们一样。 你知道PostgreSQL如何处理标识符吗?

此外,序列通常命名为* _seq 信件从最后丢失了?


关于标识符的最大长度 - 我从上面的链接引用手册:

系统使用的标识符不超过NAMEDATALEN-1个字节; 较长的名称可以用命令编写, 但它们会被截断 默认情况下,NAMEDATALEN为64,因此最大标识符长度为63个字节。 如果此限制有问题,可以通过更改src / include / pg_config_manual.h中的NAMEDATALEN常量来引发此限制。

大胆强调我的。 好像你应该稍微缩短你的标识符。

我想问题是你没有同步你的数据库。 请执行以下命令:

  1. python manage.py makemigrations myappname
  2. python manage.py migrate myappname

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM