import fs from 'fs'; import path from 'path'; export const DATA_ROOT = process.env.DATA_ROOT || '/data'; export const POSTGRES_STORAGE_DIR_NAME = 'postgresql-store'; export const POSTGRES_STORAGE_DIR = path.join(DATA_ROOT, POSTGRES_STORAGE_DIR_NAME); export const POSTGRES_STORAGE_DB_DIR_NAME = 'db'; export const POSTGRES_STORAGE_DB_DIR = path.join(POSTGRES_STORAGE_DIR, POSTGRES_STORAGE_DB_DIR_NAME); export const POSTGRES_STORAGE_MANIFEST = path.join(POSTGRES_STORAGE_DIR, 'manifest.json'); export function readPostgresStorageManifest() { try { const raw = fs.readFileSync(POSTGRES_STORAGE_MANIFEST, 'utf8'); const parsed = JSON.parse(raw); return parsed && typeof parsed === 'object' ? parsed : null; } catch { return null; } } export function hasEmbeddedPostgresDatabaseFiles() { try { return fs.existsSync(POSTGRES_STORAGE_DB_DIR) && fs.readdirSync(POSTGRES_STORAGE_DB_DIR).length > 0; } catch { return false; } } function detectStorageMode() { return readPostgresStorageManifest() ? 'postgres' : 'legacy'; } export let STORAGE_MODE = detectStorageMode(); export function refreshStorageMode() { STORAGE_MODE = detectStorageMode(); return STORAGE_MODE; } export function setStorageMode(mode) { STORAGE_MODE = mode === 'postgres' ? 'postgres' : 'legacy'; return STORAGE_MODE; } export function getStorageMode() { return STORAGE_MODE; } export function isPostgresStorageMode() { return STORAGE_MODE === 'postgres'; }