[英]Django migrations: relation does not exist
我的開發服務器上有一個工作站點和數據庫,我正在嘗試在實時服務器上進行設置。 我正在執行以下操作:
我收到錯誤: django.db.utils.ProgrammingError: relation "myapp_mytable" does not exist
。
我似乎無法進行初始遷移。 我發現的唯一解決方案是進入我的settings.py
文件並注釋掉INSTALLED_APPS
所有應用程序,並進入我的主urls.py
文件並注釋掉所有URL。
在注釋掉那些部分之后,我就可以進行初始遷移了。 之后,我可以取消注釋我的應用程序,並開始一個一個地遷移它們,即: python manage.py makemigrations appname
然后python manage.py migrate
python manage.py makemigrations appname
因此,我有一個解決方法,但這遠非理想。 當然,有一種方法可以告訴django,我已經創建了一個全新的空數據庫,因此它需要首先進行初始遷移。 我使用Ansible使服務器設置自動化,因此要求我執行所有此手動注釋/取消注釋操作和多次遷移是不好的。
更新:
根據評論,我不認為要刪除遷移。 因此,我在開發服務器上進行了以下嘗試來嘗試重新創建它們: link 。 但是,即使我現在有已復制到實時服務器的遷移文件,當我嘗試運行它們時,也會遇到與上述相同的錯誤。
我已經閱讀了遷移文件,但看不到任何有關創建初始遷移/數據庫架構的內容。 它僅提及創建我的應用程序模型。 我似乎無法弄清楚在完成應用程序遷移之前如何進行初始遷移。 我需要以某種方式重新創建所有遷移文件(包括創建初始數據庫模式),以便它們可以在服務器上運行。
我最終在@Daniel Roseman的評論中找到了問題。 我正在執行以下操作:
list(Correlation().get_entries())
這是在創建一個模型實例(即:Correlation)並針對此實例調用get_entries()方法。 然后,我將其包圍在list()中。 由於某種原因,這阻止了遷移工作。 我刪除了沒有必要的list(),現在一切正常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.