将现有 VARCHAR 值迁移到 Postgres 8 中的枚举

Migrating existing VARCHAR values to an Enum in Postgres 8

我在生产中有一个 table,其值在一个 varchar 列中,但该列现在必须是一个枚举。我已经创建了枚举,但是如何将现有值迁移到创建的枚举中。

数据库是否会通过简单地更改列类型自动将现有值 ​​map/migrate 到 Enum?

编辑:

ALTER TABLE table ALTER COLUMN column TYPE new_enum_created;

我不知道它是否有用,但我们使用 flyway 进行迁移。

您必须使用 USING 子句来告诉 PostgreSQL 如何转换数据:

ALTER TABLE "table" ALTER COLUMN "column"
   TYPE new_enum_created USING "column"::new_enum_created;