2017-10-09 99 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

相关问题