no-pg-enum
CREATE TYPE ... AS ENUM — use TEXT with an application enum instead.
Why
PostgreSQL enums make ordinary value changes operationally awkward and couple application evolution to database type migrations.
Fix
Store the value as TEXT and validate its allowed values at the typed application boundary.
Examples
DO $$ BEGIN CREATE TYPE status AS ENUM ('ready'); END $$;SELECT $data$CREATE TYPE status AS ENUM ('ready');$data$;CREATE TYPE call_status AS ENUM('pending', 'active', 'completed');CREATE TABLECALL (status TEXT NOT NULL);