gpt4 book ai didi

mysql - 无法安装 django-activity-stream 数据库表

转载 作者:可可西里 更新时间:2023-11-01 06:37:24 26 4
gpt4 key购买 nike

使用 django-south,是否可以在不应用所有之前的迁移的情况下仅将表设置为最后的、最新的配置?

我们对使用第 3 方工具 (django-activity-stream) 很感兴趣,但是由于一些未知的原因(可能是关于特定字段的 MySQL 问题)在运行所有迁移时遇到困难 - 特别是迁移 003,这会引发错误

_mysql_exceptions.OperationalError: (1170, "BLOB/TEXT column 'object_id' used in key specification without a key length") " I strongly suspect that avoiding the migrations and going straight to the current schema will avoid this.

不需要向后迁移的能力,现在只需要让我们进入当前模式,我不想破解包来处理这个。我似乎无法建立命令,或者这是否可能?

配置:

south 0.7.6,django 1.3.x,mysql 5.5.x,django-activity-stream 0.4.4

最佳答案

此错误是由于 actstream 处理其通用外键的方式造成的。问题出现在 MySql 中,因为它看到的文本字段没有任何指定长度。

可以通过使迁移 0003 成为空操作来修复此错误。

在 actstream 中的 migrations 0003_text_field_ids0004_char_field_ids 中更改以下内容:

0003_text_field_ids.py:

  1. 删除def forwards(self, orm)def backwards(self, orm) 中的所有内容,并在两者中都写上pass
  2. TextField 更改为 PositiveIntegerField

0004_char_field_ids.py:

  1. def backwards(self, orm) 中,将所有 db.altercolumns() 中的 TextField 更改为 PositiveIntegerField >.

这使得 migration 0003 成为一个 noop,使用 pass 进行向前和向后,并使模型的定义使用 PositiveIntegerFields 作为通用外键,因此它们保持与 migration 0001 离开时相同的状态。这样做,迁移 0004 可以从 PositiveIntegerFieldsvarChars。然后修复更改迁移 0004,因此向后迁移更改为 PositiveIntegerFields 而不是 TextFields

这有望解决您的问题。

关于mysql - 无法安装 django-activity-stream 数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11983232/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com