【发布时间】:2016-05-10 10:51:20
【问题描述】:
我正在尝试将项目从 Django 1.7 更新到 1.9。不幸的是,它使用了 django-extensions UUIDfield,它在内部使用了 varchar。我正在尝试将这些字段更改为数据库中的 uuid 类型。
我已经创建了一个自定义迁移,告诉 Django 迁移将使用它自己的 SQL 来完成它。当我这样做时,我的问题就来了(该列名为guid):
alter table tablename alter column guid type uuid using guid::uuid;
我收到此错误:
错误:运算符类“varchar_pattern_ops”不接受数据类型 uuid
我对 PostgreSQL 真的不是很熟悉,而且有点不知所措。我可以创建一个 CAST 或其他东西来解决这个问题吗?我不知道该怎么做。
我正在尝试使用 script from here,它应该负责处理索引依赖关系,但我真的很头疼。
【问题讨论】:
-
这能回答你的问题吗? stackoverflow.com/questions/20284557/…
-
@fl0cke 它为我指明了正确的方向,但要做到这一点,我需要弄清楚如何检查现有索引,以便之后重新创建它们。
-
在 psql 终端中尝试
\d tablename。 -
您忘记提及您的 Postgres 版本。
标签: python sql django postgresql varchar