drizzle-team / drizzle-team/drizzle-orm
[FEATURE]:Implement exclusion constraint in drizzle orm and kit.
- 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
Assessment
This issue has not been assessed yet.