Enums
How Supabase codegen maps Postgres enums to native Dart enums.
Supabase Codegen generates Dart enum types for your user-defined PostgreSQL enum types.
Feature Overview
- Automatic Mapping: Postgres enums are mapped to Dart enums.
- Serialization: Built-in support for serializing enums to/from strings.
- Default Values: Correctly handles database-level default values.
Enum Definition
For a Postgres enum type user_role with values admin, user, and moderator:
enum UserRole {
admin,
user,
moderator,
}
Usage in Tables
When a table column uses an enum type, the generated row class uses that enum:
class UsersRow extends SupabaseDataRow {
UserRole get role =>
getField<UserRole>(
'role',
enumValues: UserRole.values,
defaultValue: UserRole.user,
)!;
set role(UserRole value) => setField<UserRole>('role', value);
}