drizzle-team / drizzle-team/drizzle-orm

[FEATURE]:Implement exclusion constraint in drizzle orm and kit.

Open
#3,388 3 comments 11 reactions 0 assignees View on GitHub
db/postgres drizzle/kit enhancement
Dominant language
TypeScript
Stars
35.8k
Forks
1.6k
Avg merge
2d 7h
Merged PRs (30d)
4

Description

### Describe what you want

Add exclusion constraint to the drizzle table definition.
```
export const roomReservationsTable = pgTable(
'room_reservations',
{
id: uuid('id').defaultRandom().primaryKey().notNull(),
reservedAt: timestamp('reserved_at', { withTimezone: true, mode: 'date' }),
reservedUntil: timestamp('reserved_until', { withTimezone: true, mode: 'date' }),
isCanceled: boolean('is_canceled').default(false).notNull(),
},
table => {
return {
dateTimeCheck: check('reserved_at_le_reserved_until', sql`${table.reservedAt} <= ${table.reservedUntil}`),
roomReservationsExcludeConstraint: excludeUsingGist(room_reservations_date_time_overlap,
sql`id WITH =,
tsrange(
reserved_at::timestamp,
reserved_until::timestamp,
'[]'
) WITH &&)`,
};
},
);
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.