[英](psycopg2.errors.UndefinedColumn) column "name" does not exist
[英]Django: psycopg2.errors.UndefinedColumn: column “page_image” of “pages_page” relation does not exist
这是一个简短的背景故事。 我正在为 Django 使用 Mezzanine CMS。 我创建了一些继承自夹层模型的模型。 这在我的 Postgres 数据库中导致了一个问题,其中一个对象存在于两个表中。 当我尝试在我的网站上搜索帖子时,我不会从一张表中获得结果。
所以,这就是我认为我搞砸的地方。 我将我的模型恢复到出现此问题之前的状态。 这意味着我的数据库中仍然有这些模型的表,所以我的搜索功能仍然不起作用。 我希望这种关系消失,所以我做了一些非常愚蠢的事情并删除了整个数据库。 这对我的本地开发来说很好,因为我只是重新创建了数据库并进行了迁移。
当我尝试使用新创建的 postgres 数据库将我的这个项目部署到 DigitalOcean 上时,我得到了这个命令:
$ python manage.py createdb --nodata --noinput
这给了我错误:
psycopg2.errors.UndefinedColumn: column "page_image" of "pages_page" relation does not exist
LINE 1: UPDATE "pages_page" SET "page_image" = '', "keywords_string"...
我在这个错误上查找了几个线程,并尝试了这个不起作用的解决方案:
python manage.py shell
>>> from django.contrib.contenttypes.models import ContentType
>>> ContentType.objects.all().delete()
我也尝试过错误LINE 1: UPDATE "pages_page" SET "page_image" = '', "keywords_string"...
。 奇怪的是,在运行此命令之前,我在pages_page
表中看到了page_image
列。
我不知道在这种情况下哪些代码可能会有所帮助。 我不知道如何解决这个问题。 我怎样才能进一步解决我的这个问题?
我想通了这个问题。 它与settings.py
文件中的EXTRA_MODEL_FIELDS
选项有关。 我仍然不确定为什么会导致问题,但这是我的EXTRA_MODEL_FIELDS
代码:
EXTRA_MODEL_FIELDS = (
(
...,
(
"mezzanine.pages.models.Page.page_image",
"ImageField",
(_("Featured Image"),),
{"blank": True, "upload_to": "uploads/blog"},
),
...
)
我所做的导致我的问题消失的操作如下:
createdb --nodata --noinput
命令部署。page_image
列已自动添加现在一切正常! 我不知道这个答案可能有多大帮助,但如果有人想谈论他们的问题,我总是可以更深入。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.