【发布时间】:2016-03-28 12:23:06
【问题描述】:
在我的数据库中,我有列:
currency = models.CharField(max_length=10, blank=True, null=True)
我想将此列从 CharField 更改为 IntegerField。所以在models.py 我改变了这个:
currency = models.IntegerField(blank=True, null=True)
然后我进行了迁移:python manage.py makemigrations 和 python manage.py migrate。之后它会出现错误:
django.db.utils.ProgrammingError: column "currency" cannot be cast automatically to type integer
HINT: Specify a USING expression to perform the conversion.
之后在 pgAdmin3 控制台中我进行了以下更改:
ALTER TABLE my_table ALTER COLUMN currency TYPE integer USING (currency::integer);
但我还是遇到了那个错误,我试图全部改回来,但错误并没有消失。我必须做些什么来逃避这个错误。谢谢
【问题讨论】:
-
ProgrammingError通常是直接来自 Postgres 的消息。仔细检查该列现在是否为整数。您是否commit更改了列类型的事务? -
您的货币列中是否已有数据?
-
不,我没有任何数据
标签: python django postgresql django-models