![](/img/trans.png)
[英](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.