簡體   English   中英

打開管理表時出現ProgrammingError

[英]ProgrammingError while opening admin table

我在PostgreSQL數據庫中使用django。 加載管理員時,單擊“課程表”,出現經典錯誤:

ProgrammingError at /admin/user_profile/course/
relation "user_profile_course" does not exist
LINE 1: SELECT COUNT(*) AS "__count" FROM "user_profile_course"

我嘗試了makemigrations,然后再次進行遷移,但沒有成功。

您能幫我如何處理嗎?

我的models.py看起來像:

class Course(models.Model):
    name=models.CharField(max_length=30)
    number_of_sessions=models.IntegerField()
    student=models.ManyToManyField(User, through='Registration')

編輯:

我刪除了遷移文件夾,然后再次進行遷移。 在0001initial.py中,依賴關系如下所示:

dependencies = [
    ('auth', '0007_alter_validators_add_error_messages'),
]

看來您已從遷移文件夾中刪除了已應用的遷移,並以不同的模型狀態(帶有額外的模型Course )重新創建了它。

當數據庫的實際結構與應用遷移后的狀態不同時,這將造成情況。

現在,您可以修復遷移或修復數據庫結構。

為了完成第一個可能的修復,您需要檢查數據庫的當前狀態並將其與遷移文件進行比較。 如果您的遷移文件中有其他內容,只需更改它即可反映您的數據庫結構。

如果您不知道如何編輯遷移文件,則可以更改模型以反映數據庫結構,刪除遷移,然后使用makemigrations重新創建。

修復遷移文件后,生成第二個遷移文件,只需在模型文件中運行具有所需模型結構的makemigrations

對於第二種解決方案,請檢查遷移文件中的內容,然后編輯數據庫結構以反映出來。

請記住,不要刪除或更改已經應用的遷移,除非您真的知道自己在做什么!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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