在我的django模型中,我指定了我想与类一起使用的db表
class Meta: db_table = 'users'
字符串然而,我得到的错误
django.db.utils.ProgrammingError: (1146, "Table 'db.users' doesn't exist")
型为什么django在尝试查找表名时会在表名之前添加数据库名?我看了移民档案
options={ 'users', },
型指定
zkure5ic1#
可能是数据库的状态与迁移描述的状态不同。您可以尝试解决以下问题:(django migrate参考文档)
1.撤消所有迁移:python manage.py migrate [app_label] zero1.再次运行迁移:python manage.py migrate这将首先删除应用迁移创建的所有表,然后重新创建这些表。**请记住,您将丢失这些表中包含的所有数据。**如果迁移引用的表在数据库中不存在(这里似乎是这种情况),则撤消迁移将失败。
python manage.py migrate [app_label] zero
python manage.py migrate
1.删除数据库1.重新创建数据库1.再次运行迁移这是一种核心方法,但它可靠地解决了大多数迁移问题。**显然,这也会破坏您的数据。**有用的链接:django dbshell命令,django关于MySql和drop database on mysql docs的说明。
您可以自己使用SQL添加缺少的表。但我不建议。让Django通过迁移来管理数据库。只有在你知道自己在做什么的情况下才能弄乱数据库。
1条答案
按热度按时间zkure5ic1#
可能是数据库的状态与迁移描述的状态不同。您可以尝试解决以下问题:
(django migrate参考文档)
重置迁移
1.撤消所有迁移:
python manage.py migrate [app_label] zero
1.再次运行迁移:
python manage.py migrate
这将首先删除应用迁移创建的所有表,然后重新创建这些表。**请记住,您将丢失这些表中包含的所有数据。**如果迁移引用的表在数据库中不存在(这里似乎是这种情况),则撤消迁移将失败。
从头开始
1.删除数据库
1.重新创建数据库
1.再次运行迁移
这是一种核心方法,但它可靠地解决了大多数迁移问题。**显然,这也会破坏您的数据。**有用的链接:django dbshell命令,django关于MySql和drop database on mysql docs的说明。
自行创建表
您可以自己使用SQL添加缺少的表。
但我不建议。让Django通过迁移来管理数据库。只有在你知道自己在做什么的情况下才能弄乱数据库。