Python 将Django从1.3升级到1.4.3后,Syncdb无法删除过时的内容类型

Python 将Django从1.3升级到1.4.3后,Syncdb无法删除过时的内容类型,python,django,content-type,syncdb,Python,Django,Content Type,Syncdb,如何成功删除过期内容? 键入“是”将产生以下结果: Creating tables ... 以下内容类型已过时,需要删除: auth | message 通过外键与这些内容类型相关的任何对象也将 删除。是否确实要删除这些内容类型? 如果您不确定,请回答“否” Type 'yes' to continue, or 'no' to cancel: yes 回溯(最近一次呼叫最后一次): 我收到以下信息: DoesNotExist: ContentType matching query doe

如何成功删除过期内容?
键入“是”将产生以下结果:

Creating tables ...
以下内容类型已过时,需要删除:

auth | message
通过外键与这些内容类型相关的任何对象也将 删除。是否确实要删除这些内容类型? 如果您不确定,请回答“否”

Type 'yes' to continue, or 'no' to cancel: yes
回溯(最近一次呼叫最后一次):

我收到以下信息:

DoesNotExist: ContentType matching query does not exist.

auth.message
的contenttype的
model
字段是
'message'
而不是
'messages'

所以试试看

ct=ContentType.objects.get(app\u label='auth',model='message')

然后,您可以列出
ct.permission\u set.all()
,甚至运行
ct.delete()
(在要删除的事务和打印相关对象中)来重现问题


另外,关于“缺少表”的错误很奇怪,您能在DB中检查表是否真的存在吗?或者您是否在1.3中配置了多个DBs?

验证消息的contenttype的
model
字段
'message'
而不是
'messages'

所以试试看

ct=ContentType.objects.get(app\u label='auth',model='message')

然后,您可以列出
ct.permission\u set.all()
,甚至运行
ct.delete()
(在要删除的事务和打印相关对象中)来重现问题

另外,关于“缺少表”的错误很奇怪,您能在DB中检查表是否真的存在吗?或者您是否在1.3中配置了多个DBs?

您可以执行以下操作:

python manage.py dbshell
并检查您以前创建的所有表

查看是否存在授权组权限。如果它不在那里,我想您可以手动创建它,然后再次执行该过程。

您可以执行以下操作:

python manage.py dbshell
并检查您以前创建的所有表


查看是否存在授权组权限。如果它不在那里,我想您可以手动创建它,然后再次执行该过程。

auth\u group\u权限在数据库中不存在。如何手动创建它?问题原来是数据库问题。不知何故,身份验证组权限被删除。。。所以我创建了一个新的数据库。我创建了一个新的django项目。运行syncdb。然后我在MYSQL下以root用户身份运行以下命令:;创建表auth\u group\u权限,如.auth\u group\u权限;数据库中不存在验证组权限。如何手动创建它?问题原来是数据库问题。不知何故,身份验证组权限被删除。。。所以我创建了一个新的数据库。我创建了一个新的django项目。运行syncdb。然后我在MYSQL下以root用户身份运行以下命令:;创建表auth\u group\u权限,如.auth\u group\u权限;很好地理解了我的打字错误。然而,当我运行ct.delete()时,我仍然得到DatabaseError:(1146,“Table.auth_group_permissions”不存在)。当我查看我的数据库时,发现这个表不存在,但我不确定如何创建它。当我运行ct.permission\u set.all()时,我得到:[,]我只有一个数据库。但是,我有两个单独的项目共享数据库。这些项目不共享相同的表。@nueverest您已经解决了,这很好。当您需要手动操作数据库时,请记住备份重要数据。在localhost上,您可以安全地删除和重建表或整个数据库。很好地理解了我的打字错误。然而,当我运行ct.delete()时,我仍然得到DatabaseError:(1146,“Table.auth_group_permissions”不存在)。当我查看我的数据库时,发现这个表不存在,但我不确定如何创建它。当我运行ct.permission\u set.all()时,我得到:[,]我只有一个数据库。但是,我有两个单独的项目共享数据库。这些项目不共享相同的表。@nueverest您已经解决了,这很好。当您需要手动操作数据库时,请记住备份重要数据。在本地主机上,您可以安全地删除和重建表或整个数据库。
python manage.py dbshell