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