【发布时间】:2017-10-17 18:12:36
【问题描述】:
我在 Django (1.9) 模型上有一个 CharField:
alias = models.CharField(max_length=50)
该应用正在使用中并且已经有数据,并且已经有对象使用了全部 50 个字符。当我尝试迁移时,在不收到生产数据库投诉的情况下,减少此字段的 max_length 的最简单方法是什么?如果有区别,DB 就是 postgresql。
【问题讨论】:
-
您要保留这些文本吗?还是删除它们?
-
只需更改 models.py 中的定义...这将在设置新值时从 python 端强制执行,但不会更改对 db 的约束...
-
fron django.db.models import F;MyModels.objects.update(alias=F('alias')[:new_length])(我认为!)如果您的问题是这样,将缩短所有现有字段 -
@Exprator 理想情况下只是截断那些太长的,但也可以删除它们。
标签: python django maxlength django-model-field