无法迁移Django应用程序 - MySQL抛出一个OperationalError“规模过大”

时间:2016-11-12 08:36:56

标签: python mysql django migration

我正在尝试将我的Django应用程序连接到MySQL数据库。我创建了数据库,并尝试使用python manage.py migrate迁移应用。此时我收到以下错误:

django.db.utils.OperationalError: (1425, "Too big scale 100 specified for column 'score'. Maximum is 30.")

我在models.py中检查了该对象。它看起来像这样:

class Para(models.Model):
    ...
    text = models.CharField(max_length=20000)
    score = models.DecimalField(max_digits=100, decimal_places=5)

    def __unicode__(self):
        return self.text[:20]

所以我将max_digits更改为20,运行makemigrations并尝试再次迁移。但我一直得到同样的错误。我是MySQL新手,不知道我做错了什么。

任何帮助非常感谢。谢谢!

1 个答案:

答案 0 :(得分:0)

将其更改为

score = models.DecimalField(max_digits=20, decimal_places=5)

其他makemigrations将无效(正如您已经发现的那样),因为之前的迁移是您的服务器窒息的原因。最简单的解决方案,删除最近的两次迁移(假设您没有进行任何其他更改)。然后运行

./manage.py makemigrations
./manage.py migrate