Skip to main content
 首页 » 编程设计

python之当数据已存在于数据库中时,如何减少 Django 中 CharField 的 max_length

2024年08月20日27daizhj

我在 Django (1.9) 模型上有一个 CharField:

alias = models.CharField(max_length=50) 

该应用程序正在使用中并且已经有数据,并且已经有对象使用了全部 50 个字符。当我尝试迁移时,减少此字段的 max_length 而不会收到生产数据库投诉的最简单方法是什么? DB 是 postgresql,如果它有所作为。

请您参考如下方法:

我认为正确的方法是简单地进入开发 python 终端并访问该特定模型的所有对象并将别名的值截断为:

 for object in MyModel.objects.all(): 
      object.alias = object.alias[:REDUCED_LENGTH] 
      object.save() 

并且,更改模型中 CharField 中的 max_length 并运行迁移。