© 2026 Hedgehog Software, LLC

TwitterGitHubDiscord
More
CommunitiesDocsAboutTermsPrivacy
Search
Star
Setup for Free
Drizzle TeamDT
Drizzle Team•2y ago•
2 replies
stephen

Creating migrations with Enums present (postgres)

Hi!

I'm new to
drizzle
drizzle
but am trying to create migrations and running into troubles with the auto generation of migration files when an enum is present.

For example:

const userStatusEnum = pgEnum('statusEnum', ["pending", "active", "archived"]);
export const users = pgTable('users', {
  id: text('id').$default(() => createId()).primaryKey(),
  username: text('username').unique().notNull(),
  status: userStatusEnum('status').$default(() => "pending"),
});
const userStatusEnum = pgEnum('statusEnum', ["pending", "active", "archived"]);
export const users = pgTable('users', {
  id: text('id').$default(() => createId()).primaryKey(),
  username: text('username').unique().notNull(),
  status: userStatusEnum('status').$default(() => "pending"),
});


When I generate a migration (e.g.,
npx drizzle-kit generate:pg
npx drizzle-kit generate:pg
), I get something like:

-- 0001_awesome_venus.sql
CREATE TABLE IF NOT EXISTS "users" (
  "id" text PRIMARY KEY NOT NULL,
  "username" text NOT NULL,
  "status" "statusEnum",
);
-- 0001_awesome_venus.sql
CREATE TABLE IF NOT EXISTS "users" (
  "id" text PRIMARY KEY NOT NULL,
  "username" text NOT NULL,
  "status" "statusEnum",
);


This fails however as "statusEnum" is not defined which means i need to make the following (manual) modifications to my migration file...
+ DROP TYPE IF EXISTS statusEnum;
+ CREATE TYPE statusEnum AS ENUM ('pending', 'active', 'archived');

CREATE TABLE IF NOT EXISTS "users" (
  "id" text PRIMARY KEY NOT NULL,
  "username" text NOT NULL,
- "status" "statusEnum",
+ "status" statusEnum DEFAULT 'pending',
);
+ DROP TYPE IF EXISTS statusEnum;
+ CREATE TYPE statusEnum AS ENUM ('pending', 'active', 'archived');

CREATE TABLE IF NOT EXISTS "users" (
  "id" text PRIMARY KEY NOT NULL,
  "username" text NOT NULL,
- "status" "statusEnum",
+ "status" statusEnum DEFAULT 'pending',
);


Is this anticipated? or is there a way to configure it so that these are done automatically?
Drizzle TeamJoin
The official Discord for all Drizzle related projects, such as Drizzle ORM, Drizzle Kit, Drizzle Studio and more!
11,879Members
Resources

Similar Threads

Was this page helpful?
Recent Announcements

Similar Threads

Problem with ENUMs PostgreSQL
Drizzle TeamDTDrizzle Team / help
14mo ago
applying migrations...Error: getaddrinfo ENOTFOUND postgres
Drizzle TeamDTDrizzle Team / help
2y ago
Enums
Drizzle TeamDTDrizzle Team / help
2y ago
Enums
Drizzle TeamDTDrizzle Team / help
3y ago