d15b22ad1b
getDB/closeDB + 可空单例是 Cloudflare Workers 场景的模式——每个请求独 立上下文、不允许模块加载期副作用。在 Bun 单进程长驻服务下这些都是冗余 的仪式,徒增心智。 改为模块级 const db: - src/server/db/index.ts 直接 export drizzle(...) 实例 - shutdown 插件用 db.$client.end() 收尾 - db.middleware.ts 跟随内部重命名以避免同名遮蔽(本身的去留放到下一 次提交)
23 lines
377 B
TypeScript
23 lines
377 B
TypeScript
import { db } from '@/server/db'
|
|
|
|
export default () => {
|
|
if (import.meta.dev) return
|
|
|
|
let exiting = false
|
|
|
|
const shutdown = async () => {
|
|
if (exiting) {
|
|
process.exit(0)
|
|
}
|
|
exiting = true
|
|
|
|
setTimeout(async () => {
|
|
await db.$client.end()
|
|
process.exit(0)
|
|
}, 500)
|
|
}
|
|
|
|
process.on('SIGINT', shutdown)
|
|
process.on('SIGTERM', shutdown)
|
|
}
|