UNPKG

@coursebuilder/adapter-drizzle

Version:

Drizzle adapter for Course Builder.

33 lines (29 loc) 886 B
import { relations } from 'drizzle-orm' import { index, MySqlTableFn, timestamp, varchar } from 'drizzle-orm/mysql-core' import { getUsersSchema } from './users.js' export function getSessionsSchema(mysqlTable: MySqlTableFn) { return mysqlTable( 'Session', { sessionToken: varchar('sessionToken', { length: 255 }) .notNull() .primaryKey(), userId: varchar('userId', { length: 255 }).notNull(), expires: timestamp('expires', { mode: 'date' }).notNull(), }, (session) => ({ userIdIdx: index('userId_idx').on(session.userId), }), ) } export function getSessionRelationsSchema(mysqlTable: MySqlTableFn) { const sessions = getSessionsSchema(mysqlTable) const users = getUsersSchema(mysqlTable) return relations(sessions, ({ one }) => ({ user: one(users, { fields: [sessions.userId], references: [users.id], relationName: 'user', }), })) }