CChelar Docs
Architecture

Database

PostgreSQL schema, sqlc queries, and migration strategy.

Overview

Chelar uses PostgreSQL 16 hosted on Supabase. All queries are generated by sqlc for type safety.

Key Tables

TablePurpose
tenantsTenant records (ID, slug, plan, runtime, status)
channelsConnected messaging channels per tenant
sessionsNextAuth session store
usersOAuth user accounts
accountsOAuth provider links

Query Layer

  • Queries defined in: api/internal/db/queries/
  • Generated Go code in: api/internal/db/sqlc/
  • Connection via pgx/v5 pool

Regenerate after query changes: cd api && sqlc generate

Migrations

Migrations live in api/internal/db/migrations/ and are applied manually via goose:

goose -dir api/internal/db/migrations postgres "$DATABASE_URL" up

Conventions

  • No ORMs — raw SQL via sqlc only
  • Every query gets a descriptive name (e.g., GetTenantBySlug, ListChannelsByTenantID)
  • Migrations include brief comments per table/column group

On this page