Skip to content

Commit 8ac7bb2

Browse files
ciro-macielclaude
andcommitted
fix: Resolve caminhos para absoluto para persistir configuração entre reinicializações
Caminhos relativos como './database/manager.db' eram resolvidos em relação ao CWD do processo, causando perda de configuração ao reiniciar de outro diretório. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 103ab33 commit 8ac7bb2

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

src/index.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { Elysia } from "elysia";
22
import { Database } from "bun:sqlite";
3-
import { join, dirname } from "path";
3+
import { join, dirname, resolve } from "path";
44
import { existsSync, readFileSync, readdirSync } from 'node:fs';
55
import { writeFile } from 'node:fs/promises';
66
import { createSessionManager } from './core/session.js';
@@ -27,12 +27,14 @@ const mimeTypes = {
2727
* Se não especificado, será salvo no mesmo diretório do banco de dados (recomendado para persistência em ambientes cloud como Fly.io)
2828
*/
2929
export const sqliteAdmin = ({ dbPath, prefix = "/sqlite", configPath }) => {
30-
const db = new Database(dbPath);
30+
// Resolver para caminho absoluto para garantir consistência entre reinicializações
31+
const absoluteDbPath = resolve(dbPath);
32+
const db = new Database(absoluteDbPath);
3133
const uiPath = join(import.meta.dir, "ui", "dist");
3234

3335
// Se configPath não for especificado, deriva do diretório do banco de dados
3436
// Isso garante que a configuração fique no mesmo volume persistente do banco
35-
const resolvedConfigPath = configPath || join(dirname(dbPath), "sqlite-admin-config.json");
37+
const resolvedConfigPath = configPath ? resolve(configPath) : join(dirname(absoluteDbPath), "sqlite-admin-config.json");
3638

3739
// Gerenciador de Sessão
3840
const sessionManager = createSessionManager();

0 commit comments

Comments
 (0)