当前位置: 首页 > 面试题库 >

Django固定装置失败,并指出“ DatabaseError:值太长,无法更改类型字符(50)”

师俊健
2023-03-14
问题内容

我有一个夹具(json),它可以在开发环境中加载,但是在服务器环境中却无法加载。错误显示为:DatabaseError: value too long for type character varying(50)

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

好像灯具中的unicode标记在服务器上算作字符,它们导致某些字符串超过其字段的最大长度。但是,这在开发环境中不会发生。


问题答案:

与众不同的是模板数据库的编码。在生产服务器上,它们具有ascii编码,而在开发箱上,它们是utf-8。

默认情况下,postgres使用template1创建一个数据库。我的理解是,如果其编码不是utf-8,则即使您使用utf-8编码创建数据库,您创建的数据库也会出现此问题。

因此,我删除了它,然后将其编码设置为UTF8来重新创建它。下面的代码片段可以做到这一点:

psql -U postgres 

UPDATE pg_database SET datallowconn = TRUE where datname = 'template0';
\c template0
UPDATE pg_database SET datistemplate = FALSE where datname = 'template1';
drop database template1;
create database template1 with template = template0 encoding = 'UNICODE';
UPDATE pg_database SET datistemplate = TRUE where datname = 'template1';
\c template1
UPDATE pg_database SET datallowconn = FALSE where datname = 'template0';

现在,夹具可以顺利加载。



 类似资料:
  • 目标是使用hibernate将json文本保存到数据库中。 <代码>用户。java books.java:

  • 我使用的是Spring Data JPA,我的列定义是 在有效负载中,我使用了具有字符计数的描述。但它仍然在扔 错误:值太长,无法更改类型字符(255)` 仅使用长度为1990的文本,即使对于文本类型也会出现相同的错误

  • 使用https://nodejs.org中最新的node.js安装程序,当它到达npm安装时,我每次都会遇到同样的错误。NPM3.x本来应该处理这个问题,但显然它对Node.js安装程序没有帮助。节点开发人员基本上拒绝对此做任何事情,因为这个问题已经存在了大约两年。不幸的是,我似乎找不到工作。我怎样才能安装这个?

  • hbm xml文件: 例外情况: log4j:警告请正确初始化log4j系统。初始SessionFactory创建失败:org.hibernate.mappingException:无法确定:com.ds.supercar.model.places.location的类型,对于列:[org.hibernate.mapping.simplevalue.isvalid(simplevalue.isva

  • 我需要生成一个固定长度的文本行: 我现在有的是: 这非常有用,因为生成了一个55个字符的固定长度的字符串。 例如,当可选值为空字符串时,就会出现问题,例如: 在string.format中有空字符串不会给出固定的长度,我仍然需要有30个字符的长度。 任何线索都非常感谢!! 谢谢

  • 我是打字新手。我正在使用Express、Node和Typescript进行备份。我有一个具有类型的对象: 我正在创建一个新的水果实例,从JSON文件中重新创建水果类型并填充它 这会产生一个错误。我知道我得到这个错误是因为我分配了一个未知字符串而不是Enum值。我假设解决方案是在将水果类型指定给FruitType对象之前,以某种方式检查水果类型是否为其中一个值。如何修复此错误?