2017-10-09 142 views
0

在它使用mysql,我有3個應用程序,並在其中的一個我有一個「國家」模型django 1.11應用:「表不存在」 Django上makemigrations

class Country(models.Model): 
    countryId = models.AutoField(primary_key=True, db_column='country_id') 
    name = models.CharField(max_length=100) 
    code = models.CharField(max_length=3) 

    class Meta: 
     db_table = 'country' 

Whaen我嘗試makemigrations我得到這個錯誤:

django.db.utils.ProgrammingError: (1146, "Table 'dbname.country' doesn't exist") 

如果我在其他應用程序,它是不相關的這個模型,並使用./manage.py makemigrations another_app的數據庫表進行遷移,我仍然得到這個錯誤。

+0

當模塊在創建表之前加載時,您有模塊級代碼試圖從數據庫中獲取對象。 [這是一個類似的問題](https://stackoverflow.com/questions/45153674/programmingerror-relation-blah-blah-does-not-exist-trying-to-run-the-specifi/45154403#45154403)。完整的回溯會告訴你查找的位置。 – Alasdair

回答

0

不知何故,Django認爲你已經創建了這張表,現在正試圖修改它,而實際上你已經從外部刪除了表並重新開始。如果是這樣,請刪除migrations文件夾中的所有文件屬於您的應用程序,並從./manage.py makemigrations開始。

1

評論,如果您有任何相關性,可能是同一型號需要的模範國家在同一應用程序或其他應用程序,如:

class OtherModel(models.Model): 
    country = models.ForeignKey(Country) 

1.-如果是真的,你需要如果INSTALLED_APPS審查settings.py具有正確的應用程序順序,如果在同一個應用程序中,則需要首先聲明一個國家/地區應用程序,然後聲明依賴項。

2.-如果dependent從屬於同一個應用程序,則依賴Model需要在models.py中的Country模型之後聲明。如果

3.-評控制檯談談models.py相同的誤差修改或forms.py

4.-檢討錯誤的軌道,如果執行makemigrations和遷移時,是應用程序的正確順序:蟒蛇管理。 py makemirgations app_of_country,other_app_name

相關問題