From 1992317f10737064e982475028ac79cdc7de5e17 Mon Sep 17 00:00:00 2001 From: WJG Date: Sun, 16 Jun 2024 19:03:25 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E4=BC=98=E5=8C=96=20db=20=E8=B7=AF?= =?UTF-8?q?=E5=BE=84=E6=9F=A5=E6=89=BE=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/todo.md | 1 + src/services/bot/config.ts | 2 +- src/services/db/index.ts | 18 +++++++++++------- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/docs/todo.md b/docs/todo.md index d8cf0e5..30e1da9 100644 --- a/docs/todo.md +++ b/docs/todo.md @@ -13,6 +13,7 @@ - ✅ 登录凭证过期后自动刷新 token https://github.com/idootop/mi-gpt/issues/76 - ✅ 优化网络请求错误重试策略(消息/播放状态轮询) - ✅ 移除 TTS 不发音字符(emoji) +- ✅ 优化 db 路径查找方式 ## 📚 文档 diff --git a/src/services/bot/config.ts b/src/services/bot/config.ts index 05e1769..12555aa 100644 --- a/src/services/bot/config.ts +++ b/src/services/bot/config.ts @@ -111,7 +111,7 @@ class _BotConfig { } const bot = await UserCRUD.get(this.botIndex!.botId); if (!bot) { - this._logger.error("find bot failed"); + this._logger.error("find bot failed. 请删除 .bot.json 文件后重试!"); return undefined; } const master = await UserCRUD.get(this.botIndex!.masterId); diff --git a/src/services/db/index.ts b/src/services/db/index.ts index 208e877..e681886 100644 --- a/src/services/db/index.ts +++ b/src/services/db/index.ts @@ -28,13 +28,17 @@ export function getSkipWithCursor(skip: number, cursorId: any) { } export function getDBInfo() { - const isExternal = exists("node_modules/mi-gpt/prisma"); - const dbPath = isExternal - ? "node_modules/mi-gpt/prisma/app.db" - : "prisma/app.db"; - const schemaPath = isExternal ? "node_modules/mi-gpt" : "."; - const withSchema = `--schema ${schemaPath}/prisma/schema.prisma`; - return { dbPath, isExternal, withSchema }; + let rootDir = import.meta.url + .replace("/dist/index.js", "") + .replace("/dist/index.cjs", "") + .replace("/src/services/db/index.ts", "") + .replace("file:///", ""); + if (rootDir[1] !== ":") { + rootDir = "/" + rootDir; // linux root path + } + const dbPath = rootDir + "/prisma/app.db"; + const withSchema = `--schema ${rootDir}/prisma/schema.prisma`; + return { dbPath, withSchema }; } export async function initDB() {