diff --git a/packages/server/src/db/index.ts b/packages/server/src/db/index.ts index 9809b40..aa88142 100644 --- a/packages/server/src/db/index.ts +++ b/packages/server/src/db/index.ts @@ -111,3 +111,15 @@ export function jsonDelete(table: string, key: string): void { export function getStoragePath(): string { return SQLITE_AVAILABLE ? DB_PATH : JSON_PATH } + +/** + * Close the SQLite database connection. + */ +export function closeDb(): void { + if (_db) { + try { + _db.close() + } catch { /* best-effort */ } + _db = null + } +} diff --git a/packages/server/src/services/shutdown.ts b/packages/server/src/services/shutdown.ts index 2f8701f..302412d 100644 --- a/packages/server/src/services/shutdown.ts +++ b/packages/server/src/services/shutdown.ts @@ -1,4 +1,5 @@ import { logger } from './logger' +import { closeDb } from '../db' export function bindShutdown(server: any, groupChatServer?: any, chatRunServer?: any): void { let isShuttingDown = false @@ -35,6 +36,7 @@ export function bindShutdown(server: any, groupChatServer?: any, chatRunServer?: logger.error(err, 'Shutdown error') } + closeDb() process.exit(0) }