ProgrammingError:列不能自动转换为double double类型

时间:2015-05-14 13:51:58

标签: django postgresql

我试图将我的Django项目从使用sqlite3迁移到使用PostgreSQL。我已经为项目创建了数据库,但是当我尝试运行syncdb时,我收到以下错误:

django.db.utils.ProgrammingError: column "partial_value" cannot be cast automatically to type double precision
HINT: Specify a USING expression to perform the conversion.

该列在模型中定义如下:

partial_value = models.FloatField()

我尝试搜索类似的问题,但他们似乎更多的是更换字段类型。

2 个答案:

答案 0 :(得分:0)

您需要更新“partial_value”列的列类型。将表格的名称放在table_name

的以下代码中
ALTER TABLE table_name ALTER COLUMN partial_value TYPE double precision USING (trim(partial_value)::double precision);

答案 1 :(得分:0)

我找到了为什么该字段首先应用为character varying的原因。事实证明,有一个迁移文件以这种方式定义它。通过删除迁移文件并运行manage.py syncdb来修复错误。