django makemigrations上的“表不存在”

问题描述 投票:1回答:2

在使用django 1.11mysql应用程序中,我有3个应用程序,其中一个我有一个'Country'模型:

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'

当我尝试qazxsw poi时,我收到此错误:

makemigrations

如果我使用django.db.utils.ProgrammingError: (1146, "Table 'dbname.country' doesn't exist") 运行另一个与此模型及其数据库表无关的应用程序的迁移,我仍然会收到此错误。

mysql django django-models migration
2个回答
2
投票

如果您有任何依赖关系,请检查是否可能相同的模型需要同一个应用程序或其他应用程序中的模型国家/地区:

./manage.py makemigrations another_app

1.-如果为True,则需要检查settings.py中的installed_apps是否具有正确的应用顺序,如果属于同一应用,则需要先声明国家/地区应用,然后再声明受抚养人。

2.-如果依赖项位于同一个应用程序中,则需要在models.py中的Country模型之后声明依赖模型。

3.-检查控制台上的错误跟踪是否在models.py或forms.py上讨论相同的错误

4.-检查执行makemigrations和migrate是否是正确的应用顺序:python manage.py makemirgations app_of_country,other_app_name


0
投票

不知怎的,Django认为你已经创建了这个表,现在正在尝试修改它,而实际上你已经从外部删除了表并重新开始。如果是这种情况,请删除属于您的应用程序的class OtherModel(models.Model): country = models.ForeignKey(Country) 文件夹中的所有文件,然后重新开始使用migrations

© www.soinside.com 2019 - 2024. All rights reserved.