gpt4 book ai didi

Django fixture 失败,显示 "DatabaseError: value too long for type character varying(50)"

转载 作者:行者123 更新时间:2023-11-29 11:13:04 24 4
gpt4 key购买 nike

我有一个在开发环境中加载但在服务器环境中加载失败的夹具 (json)。错误显示:“DatabaseError:值太长,类型字符不同 (50)

我的开发环境是 Windows & Postgres 8.4。服务器运行 Debian 和 Postgres 8.3。两个系统中的数据库编码都是 UTF8。

就好像夹具中的 unicode 标记在服务器上计为字符,它们导致某些字符串超过其字段的最大长度。然而,这不会发生在开发环境中..

最佳答案

更新:50 个字符的限制 is now 255在 Django 1.8 中

--

原答案:

我今天下午也刚遇到这个问题,我有一个解决办法(某种程度上)

post here暗示这是一个 Django 错误,与 auth_permission 允许的值的长度有关。进一步挖掘支持这个想法,this Django ticket 也是如此。 (即使它最初与 MySQL 相关)。

基本上,权限名称是基于模型的 verbose_name 加上描述性权限字符串创建的,并且可以溢出到超过 auth.models.Permission.name 中允许的 50 个字符。

引用 Django ticket 上的评论:

The longest prefixes for the string value in the column auth_permission.name are "Can change " and "Can delete ", both with 11 characters. The column maximum length is 50 so the maximum length of Meta.verbose_name is 39.

一个解决方案是破解该列以支持 > 50 个字符(我说最好是通过南迁移,这样它很容易重复)但我能想到的最快、最可靠的解决方法就是让我的额外- long verbose_name 定义更短(从 verbose_name 中的 47 个字符减少到大约 20 个)。现在一切正常。

关于Django fixture 失败,显示 "DatabaseError: value too long for type character varying(50)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3803552/

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