forked from BRETT/BRETT
18 lines
533 B
TypeScript
18 lines
533 B
TypeScript
import type { MySql2Database } from 'drizzle-orm/mysql2'
|
|
import { drizzle } from 'drizzle-orm/mysql2'
|
|
import mysql from 'mysql2/promise'
|
|
import * as schema from '../db/schema'
|
|
|
|
let db: MySql2Database<typeof schema> | undefined
|
|
|
|
export function useDb() {
|
|
if (!db) {
|
|
const { databaseUrl } = useRuntimeConfig()
|
|
if (!databaseUrl) {
|
|
throw createError({ statusCode: 500, statusMessage: 'DATABASE_URL is not configured' })
|
|
}
|
|
db = drizzle(mysql.createPool(databaseUrl), { schema, mode: 'default' })
|
|
}
|
|
return db
|
|
}
|