[英]How does postgres store django choice_fields - getting column “type” of relation does not exist error
[英]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常量来引发此限制。
大胆强调我的。 好像你应该稍微缩短你的标识符。
我想问题是你没有同步你的数据库。 请执行以下命令:
python manage.py makemigrations myappname
python manage.py migrate myappname
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.