From aba969bc1f0355063913db8813e9cef2ba620e91 Mon Sep 17 00:00:00 2001 From: "[._.]/ Adam Eivy" Date: Sun, 30 Aug 2026 23:17:29 +0000 Subject: [PATCH] feat: rebuild PostgreSQL query store from JSON (#149) --- .changelog/NEXT.md | 1 + docs/cli.md | 6 + docs/development.md | 26 +- scripts/index.ts | 29 +- scripts/rebuild.ts | 64 ++- server/src/lib/json-tree-loader.ts | 70 +++ server/src/lib/postgres-person-sync.ts | 460 ++++++++++++++++++++ server/src/lib/postgres-writer.ts | 290 ++++++++++++ server/src/lib/postgres-writer.types.ts | 76 ++++ tests/integration/db/postgresWriter.spec.ts | 232 ++++++++++ 10 files changed, 1239 insertions(+), 15 deletions(-) create mode 100644 server/src/lib/json-tree-loader.ts create mode 100644 server/src/lib/postgres-person-sync.ts create mode 100644 server/src/lib/postgres-writer.ts create mode 100644 server/src/lib/postgres-writer.types.ts create mode 100644 tests/integration/db/postgresWriter.spec.ts diff --git a/.changelog/NEXT.md b/.changelog/NEXT.md index 2ffcff4f..aa27a10b 100644 --- a/.changelog/NEXT.md +++ b/.changelog/NEXT.md @@ -14,6 +14,7 @@ ## Internal +- **[issue-149] PostgreSQL JSON rebuild writer** — Family-tree JSON can now populate the staged PostgreSQL query store transactionally and idempotently while preserving canonical identities and leaving SQLite available during migration. - **[issue-148] PostgreSQL query-store foundation** — Added a packaged PostgreSQL schema and lazy async connection layer with transactional initialization, health checks, and named parameters, while leaving the current SQLite/JSON runtime unchanged until the staged migration completes. - Provider comparison cards no longer emit an invalid nested-`