jacklalane's picture
Deploy GitRag space
324144b verified
|
Raw
History Blame Contribute Delete
1.49 kB

Database Provisioning

These snippets bootstrap GitRag persistence for both libSQL and PostgreSQL.

Shared Logical Schema

Both providers use the same logical chunks fields:

  • id, repo, branch, path, language
  • start_row, start_col, end_row, end_col
  • start_bytes, end_bytes
  • chunk, status, mutation_id
  • embedding (provider-specific type)
  • search_vector (native tsvector in postgres; nullable text parity field in libSQL)

Embedding Dimension

The embedding size is defined by EMBEDDING_DIMENSIONS in packages/core/src/constants.py (currently 768). If this constant changes, update provisioning/postgres/schema.sql.

libSQL

  1. Install sqlx, litecli, or use turso CLI to connect.
  2. Run libsql/schema.sql.
  3. Verify with PRAGMA table_info(chunks); and SELECT name FROM sqlite_master WHERE name='chunks_fts';.

PostgreSQL

  1. Connect to the target database (the database itself must already exist).
  2. Run postgres/schema.sql.
  3. Verify with \d chunks and \di chunks_*.

Syncing

If you point the indexer at a local SQLite file, pass the remote URL/token via sync_url and auth_token (the SQLAlchemy adapter handles this automatically).

MCP Server

packages/mcp-server does not define its own database tables. Its entrypoint is run_space.py. It calls Retriever, which reads from the same chunks persistence schema above.