Django和PostgreSQL-值太长,无法更改类型字符(512)
我正在从测试SQLite数据库迁移到PostgreSQL数据库 我在数据库中插入了一个示例对象,它在SQLite上工作,但在PostgreSQL中给了我一个错误 代码片段是:Django和PostgreSQL-值太长,无法更改类型字符(512),django,postgresql,psycopg2,django-database,Django,Postgresql,Psycopg2,Django Database,我正在从测试SQLite数据库迁移到PostgreSQL数据库 我在数据库中插入了一个示例对象,它在SQLite上工作,但在PostgreSQL中给了我一个错误 代码片段是: car = CarItem.objects.create( user = motor_trend, name = 'Camaro 2010', category = cars, condition = 'Used', price = '28,547.00', producti
car = CarItem.objects.create(
user = motor_trend,
name = 'Camaro 2010',
category = cars,
condition = 'Used',
price = '28,547.00',
production_year = '2010',
color_interior = 'Black',
color_exterior = 'Inferno Orange Metallic',
reference = 'PRC17288',
location_of_creation = 'Undisclosed',
location_current = 'Columbus, OH, USA',
description = 'GORGEOUS ORANGE SS!!',
)
car.save()
我得到一个:
DatabaseError at /create/
value too long for type character varying(512)
Traceback
(...)
description = 'GORGEOUS ORANGE SS!!',
(...)
“我的模型”的“描述”字段的最大字符长度为512:
description = models.CharField(max_length=512,default='')
但字符串不可能超过512字节
我以前读过关于这个错误的帖子,其中一篇是关于编码的。情况似乎并非如此
我在WebPaction上主持。我用utf-8编码创建了一个数据库,并继续使用syncdb。Syncdb工作得很好,但是现在这个对象插入失败了
有人能提供一些意见吗?谢谢。在挖掘了一些
字符字段
使用VARCHAR列类型存储的任何字段都有其
如果使用的是unique=True,则最大长度限制为255个字符
在球场上
我的。该字段是否有unique=True
?
这是Django限制,PostgreSQL不会介意。您可能需要切换到数据类型。用Django的话说
旧观念:
用户
是一种通用的SQL标准。不要将其用作列名
如果你用双引号括起来,你可以用它,但要远离这种愚蠢的行为。只是不要使用保留字作为标识符。永远
还有
user = motor_trend,
name = 'Camaro 2010',
category = cars,
为什么
汽车趋势
和汽车
没有像其他值一样被引用,有什么特殊原因吗?外键,如@Ignacio注释?因为它们是外键。Django的ORM可能正确地引用了字段名。是的,这些是以前定义的Django变量、一些字符串和其他对象。但是,这是否与描述问题有关?是因为我有一个用户字段导致了描述问题吗?@VascoPatricio:没有明显的问题关联,没有。因为没有明显的问题,我在寻找任何可疑的东西。我翻了翻手册,想我现在找到了什么。修改我的答案,看一看。谢谢你的提示。对于长文本字段,使用TextField比使用CharField更有意义。我会试试这个,然后回来汇报。