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
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:
@@ -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
|
||||
}
|
||||
Reference in New Issue
Block a user