feat(db): перевести хранилище с SQLite на PostgreSQL
Docker images / prepare-release (push) Successful in 12s
Docker images / backend-test (push) Successful in 4m9s
Docker images / frontend-image (push) Successful in 4m28s
Docker images / updater-image (push) Successful in 58s
Docker images / backend-image (push) Successful in 2m49s
Docker images / notify-webhook (push) Skipped
Docker images / publish-release (push) Successful in 11s

При старте backend накатывает схему PostgreSQL 18 и, если база пустая, один раз импортирует mikrotik.db с тома. Повторный старт не копирует данные. Бэкап в UI идёт через pg_dump.

Co-authored-by: Cursor <[email protected]>
This commit is contained in:
Denozordec
2026-09-08 01:36:48 +07:00
co-authored by Cursor
parent 0e5fb065e2
commit ec43591a99
128 changed files with 4304 additions and 3639 deletions
+22
View File
@@ -0,0 +1,22 @@
import { initDatabase } from "../db/bootstrap.js"
let ready: Promise<boolean> | null = null
/** Initialize schema against DATABASE_URL; return false if PostgreSQL is unreachable. */
export function withPgOrSkip(): Promise<boolean> {
if (!ready) {
ready = (async () => {
try {
await initDatabase()
return true
} catch (err) {
console.warn(
"skip: PostgreSQL недоступен",
err instanceof Error ? err.message : err,
)
return false
}
})()
}
return ready
}