Skip to content

Database

PolitikTok uses PostgreSQL for relational data and Qdrant for vector storage.

PostgreSQL

Connection String

DATABASE__URL=postgresql://user:password@host:5432/politiktok

Connection Pool

PolitikTok uses sqlx with an async connection pool. Pool settings are configured via environment variables:

VariableDefaultDescription
DATABASE__URLPostgreSQL connection string (required)
DATABASE__MAX_CONNECTIONS10Maximum pool connections
DATABASE__MIN_CONNECTIONS1Minimum idle connections

Migrations

Migrations are managed by sqlx and stored in the migrations/ directory.

bash
# Run pending migrations
sqlx migrate run

# Check migration status
sqlx migrate info

# Create a new migration
sqlx migrate add <name>

Production Recommendations

  • Use a dedicated PostgreSQL instance or managed service
  • Enable SSL connections (?sslmode=require in connection string)
  • Configure regular backups (see Backups)
  • Monitor connection pool usage

Qdrant (Vector Store)

Configuration

VariableDefaultDescription
VECTOR_STORE__URLhttp://localhost:6334Qdrant gRPC endpoint
VECTOR_STORE__API_KEYOptional API key

Collections

PolitikTok creates the following Qdrant collections:

CollectionVector SizePurpose
policy_documents1536Policy chatbot RAG
knowledge_base1536Knowledge base RAG

Collections are auto-created on first use with cosine distance.