auth.sql.ts 655 B

1234567891011121314151617181920
  1. import { index, mysqlEnum, mysqlTable, primaryKey, uniqueIndex, varchar } from "drizzle-orm/mysql-core"
  2. import { id, timestamps, ulid } from "../drizzle/types"
  3. export const AuthProvider = ["email", "github", "google"] as const
  4. export const AuthTable = mysqlTable(
  5. "auth",
  6. {
  7. id: id(),
  8. ...timestamps,
  9. provider: mysqlEnum("provider", AuthProvider).notNull(),
  10. subject: varchar("subject", { length: 255 }).notNull(),
  11. accountID: ulid("account_id").notNull(),
  12. },
  13. (table) => [
  14. primaryKey({ columns: [table.id] }),
  15. uniqueIndex("provider").on(table.provider, table.subject),
  16. index("account_id").on(table.accountID),
  17. ],
  18. )