Debe definir una conversión que se utilizará porque no hay una conversión predeterminada disponible.
Si todos los valores en varcharColumn
cumplir con la definición de enumeración, lo siguiente debería funcionar:
alter table foo
ALTER COLUMN varcharColumn TYPE enum_type using varcharColumn::enum_type;
Personalmente, no me gustan las enumeraciones porque son bastante poco flexibles. Prefiero una restricción de verificación en una columna varchar si quiero restringir los valores en una columna. O, si la lista de valores cambia con frecuencia y va a crecer, una buena "tabla de búsqueda" con una restricción de clave externa.