我试图将我的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()
我尝试搜索类似的问题,但他们似乎更多的是更换字段类型。
答案 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
来修复错误。