3

在 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; []

我该怎么办

4

2 回答 2

3

您的问题是迁移失败,并且 MySQL 不支持事务,因此 South 不知道表处于哪个状态。

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

  • 检查表并检查它们处于迁移的哪个状态(哪些列已更改等)
  • 备份两个表(转储出来)
  • 删除表。
  • 使用 migrate 命令重新创建表。
  • 如果迁移尚未成功,请使用 south 进入表与转储数据架构匹配的状态
  • 导入您的转储
  • 再次迁移
于 2011-07-05T19:49:09.120 回答
0

除了托马斯的回答;如果您在重新运行迁移期间获得任何IntegrityError密钥,请同时删除专门为应用程序模型创建的权限。content_type_id错误将类似于以下内容:

IntegrityError: (1062, "Duplicate entry '209-view_<model name>' for key 'content_type_id'")

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

Select * from auth_permission where codename like '%<model name>'

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

于 2014-04-13T16:41:31.193 回答