Enum

Как добавить в существующий enum новое значение

ALTER TYPE status_enum ADD VALUE 'new_value';

По умолчанию enum вставляется в конец, но можно на это влиять

ALTER TYPE status_enum ADD VALUE 'in_review' BEFORE 'approved';
-- или
ALTER TYPE status_enum ADD VALUE 'in_review' AFTER 'pending';

Жесткое изменение или удаление

-- 1. Переименовываем старый enum
ALTER TYPE status_enum RENAME TO status_enum_old;

-- 2. Создаём новый enum с нужными значениями
CREATE TYPE status_enum AS ENUM ('pending', 'in_review');

-- 3. Приводим столбцы к тексту, чтобы снять зависимость от старого типа
ALTER TABLE orders ALTER COLUMN status TYPE TEXT;

-- 4. Приводим столбец обратно к новому enum
ALTER TABLE orders ALTER COLUMN status TYPE status_enum
  USING status::status_enum;

-- 5. Удаляем старый enum (если больше не нужен)
DROP TYPE status_enum_old;