Django& Postgresql&南:将CharField转换为DecimalField

时间:2015-08-13 12:08:14

标签: django postgresql django-south

我已将CharField更改为DecimalField并从南方获得此错误:

提示:指定USING表达式以执行转换

所以我用Google搜索并使用了它:

    db.execute(
        'ALTER TABLE "user_profile" '
        'ALTER COLUMN "proxy_score" DROP DEFAULT, '
        'ALTER COLUMN "proxy_score" DROP NOT NULL, '
        'ALTER COLUMN "proxy_score" TYPE NUMERIC USING to_number("proxy_score", "99.99")'
    )
     

这是我在通过南方运行迁移代码后得到的错误:django.db.utils.DatabaseError:列“99.99”不存在

但是我的to_number出了点问题。

我缺少什么?

我想支持4位十进制数,例如:12.35

由于

1 个答案:

答案 0 :(得分:0)

尝试不使用99.99附近的双引号。

ALTER TABLE user_profile
ALTER COLUMN proxy_score TYPE NUMERIC USING to_number(proxy_score, '99.99');

http://sqlfiddle.com/#!15/e7a17/1