'关系不存在'转移到PostgreSQL后出现错误[英] 'Relation does not exist' error after transferring to PostgreSQL

本文是小编为大家收集整理的关于'关系不存在'转移到PostgreSQL后出现错误的处理方法,想解了'关系不存在'转移到PostgreSQL后出现错误的问题怎么解决?'关系不存在'转移到PostgreSQL后出现错误问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我已将我的项目从 MySQL 转移到 PostgreSQL 并尝试删除该列作为先前问题的结果,因为在我从 models.py 中删除有问题的列并保存之后.错误甚至没有消失.从 MySQL 传输到 PostgreSQL 的整数错误

加引号和不加引号都试过了.

ALTER TABLE "UserProfile" DROP COLUMN how_many_new_notifications;

或者:

ALTER TABLE UserProfile DROP COLUMN how_many_new_notifications;

获取以下信息:

ERROR:  relation "UserProfile" does not exist

这是一个模型,如果有帮助:

 class UserProfile(models.Model):
    user = models.OneToOneField(User)
    how_many_new_notifications = models.IntegerField(null=True,default=0)
User.profile = property(lambda u: UserProfile.objects.get_or_create(user=u)[0])

我认为这可能与大小写混合有关,但我没有通过所有类似问题找到解决方案.

推荐答案

是的,Postgresql 是一个区分大小写的数据库,但 django 足够聪明,知道这一点.它转换所有字段,通常将模型名称转换为小写的表名称.然而,这里真正的问题是您的模型名称将以应用程序名称为前缀.一般django表名是这样的:

<appname>_<modelname>

您可以通过以下方式找出它的确切含义:

from myapp.models import UserProfile
print (UserProfile._meta.db_table)

显然,这需要输入到 django shell 中,由 ./manage.py shell 调用,此打印语句的结果就是您应该在查询中使用的结果.

本文地址:https://www.itbaoku.cn/post/1764114.html