Django 3.2.6执行makemigrations报错求助
问题解决步骤
针对ModuleNotFoundError: No module named 'django.db.migrations.migration'
- 激活项目对应的虚拟环境,执行强制重装Django:
pip install --force-reinstall django==3.2.6 - 删除项目根目录及所有app目录下的
__pycache__文件夹,清除Python缓存文件 - 检查是否误在项目根目录创建了
migrations文件夹,如有直接删除
针对django.db.utils.ProgrammingError: (1146, "Table 'dohaerp_db.ciudades' doesn't exist")
第一步:修正模型错误
你的ciudades模型里__str__方法返回了不存在的self.name字段,这会导致模型加载异常,先修正:
class ciudades(models.Model): ciudad_nombre = models.CharField(max_length=50) estado = models.CharField(max_length=50) def __str__(self): return self.ciudad_nombre # 替换原来的self.name class Meta: db_table = 'ciudades' verbose_name ='Ciudad' verbose_name_plural = 'Ciudades'
第二步:重置迁移并重新初始化数据库
- 关闭所有正在运行的Django服务
- 找到
ciudades模型所在的app,进入其migrations文件夹,删除除__init__.py外的所有文件;若涉及多个app,对每个app都执行此操作 - 确认
settings.py中INSTALLED_APPS已包含该app - 执行以下命令重新生成迁移并同步数据库:
若全新数据库仍有问题,可尝试:python manage.py makemigrations python manage.py migratepython manage.py migrate --fake-initial
额外检查
- 确认
settings.py中的数据库配置指向正确的新数据库 - 执行
python manage.py check,确保模型无其他语法或逻辑错误
内容的提问来源于stack exchange,提问作者Dorian Raygoza
相关产品推荐
相关产品推荐

