获取SOUTH和django迁移错误

获取SOUTH和django迁移错误,django,django-south,django-syncdb,Django,Django South,Django Syncdb,我在django中迁移Sentry应用程序时出错。我正在使用mysql ! Since you have a database that does not support running ! schema-altering statements in transactions, we have had ! to leave it in an interim state between migrations. ! You *might* be able to recover with:

我在django中迁移Sentry应用程序时出错。我正在使用mysql

 ! Since you have a database that does not support running
 ! schema-altering statements in transactions, we have had
 ! to leave it in an interim state between migrations.

! You *might* be able to recover with:   = DROP TABLE `sentry_groupedmessage` CASCADE; []
   = DROP TABLE `sentry_message` CASCADE; []

我该怎么办

您的问题是迁移失败,MySQL不支持事务,所以South不知道表处于哪个状态

从这一点上恢复它的唯一方法是:

  • 检查表并检查它们处于迁移的哪个状态(哪些列已更改等)
  • 备份两个表(转储它们)
  • 删除表
  • 使用migrate命令重新创建表
  • 如果迁移尚未成功,请使用south转到表与转储数据的模式匹配的状态
  • 导入您的转储文件
  • 再次迁移

托马斯回答的补充;如果您在重新运行迁移期间获得密钥
content\u type\u id
的任何
IntegrityError
,请同时删除专门为应用程序模型创建的权限。错误类似于以下情况:

IntegrityError:(1062,“重复输入'209-view'用于键'content\u type\u id'”)

在这种情况下,请从表auth_permission中删除这些权限。您可以执行类似于的
搜索模型名称以查找所有权限(查看、添加、更改、删除)

Select*from auth\u权限,其中代码名类似“%”


上面的命令将为您的模型获得所有权限,您可以获取他们的ID并删除(或简单地编写一个连接)。

按照说明操作?您的意思是MySQL不支持他所说的,MySQL有那么糟糕吗?我不能在Django的小项目中使用它