簡體   English   中英

Django:psycopg2.errors.UndefinedColumn:“pages_page”關系的“page_image”列不存在

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM