我运行makemigrations显示No changes detected,但是会报错django.db.utils.ProgrammingError: (1146, "Table 'userdb.app01_personal_info' doesn't exist")
时间: 2024-03-01 17:56:14 浏览: 127
django.db.utils.ProgrammingError: (1146, u“Table‘’ doesn’t exist”)问题的解决
如果你运行`python manage.py makemigrations`时显示"No changes detected",说明Django检测到你的模型没有进行任何更改,因此没有生成新的迁移文件。但是当你运行`python manage.py migrate`时,会出现"django.db.utils.ProgrammingError: (1146, "Table 'userdb.app01_personal_info' doesn't exist")"的错误提示,意味着该表在数据库中不存在。
这可能是因为你的数据库中没有该表,或者该表的名称在`models.py`中定义不正确。
你可以首先检查数据库中是否存在该表,可以使用数据库管理工具或者运行以下SQL语句进行查询:
```
SELECT * FROM app01_personal_info;
```
如果该表不存在,则需要运行`python manage.py migrate`来创建该表。
如果该表已经存在但是仍然报错,那么你需要检查`models.py`文件中`PersonalInfo`模型的定义是否正确。确保该模型的`Meta`类中定义的`db_table`属性与数据库中表的名称完全一致。
如果以上方法都无法解决问题,那么可能需要进一步排查数据库连接和配置是否正确。
阅读全文