Skip to main content
The main database is SQLite (default, one file) or PostgreSQL, chosen with db_backend in the config:
The schema is created on startup. SQLite takes its file from serve --db (default build/gligabao.db). All SQL lives in the backend packages, each with its own schema and dialect; the rest of the code calls routing functions that dispatch to the backend in use:
  • Datasets and the LLM call log: internal/db/relational (sqlite, postgres).
  • The knowledge graph (artifacts, entities, edges): internal/db/graph (currently sqlite and postgres tables in the same database; dedicated graph databases are meant to be added there).

Tests

Tests run against SQLite, and also against PostgreSQL when POSTGRES_TEST_DSN is set (each test gets a temporary schema):
See also Vector storage for where embeddings live.