Skip to content

DB Access

The API builds runtime database URLs in apps/api/src/config.ts.

It supports:

  • explicit POSTGRES_URL and REDIS_URL
  • or separate host/user/password/port env variables

Start local services:

Terminal window
docker compose up -d db redis

Then run:

Terminal window
pnpm dev:api

Useful root commands:

  • pnpm db:generate:api
  • pnpm db:migrate:api
  • pnpm db:studio:api
  • pnpm db:push:api
  • pnpm db:pull:api

When POSTGRES_URL is set:

Terminal window
psql "$POSTGRES_URL"

When using split env values:

Terminal window
psql "postgres://$POSTGRES_USER:$POSTGRES_PASSWORD@$POSTGRES_HOST:$POSTGRES_PORT/$POSTGRES_DB"

If REDIS_URL is set:

Terminal window
redis-cli -u "$REDIS_URL"

If using split env values:

Terminal window
redis-cli -h "$REDIS_HOST" -p "$REDIS_PORT" -a "$REDIS_PASSWORD"

The base SQL script creates the partitioned parent tables only.

Files:

  • packages/database/src/utils/sql_scripts/create_items.sql
  • packages/database/src/utils/sql_scripts/examples/create_items_partitions.example.sql
  • packages/database/src/utils/sql_scripts/create_actions_events.sql
  • packages/database/src/utils/sql_scripts/examples/create_actions_events_partitions.example.sql

Use the example files only as templates. Real item partitions should be created per network/domain, and real action/event partitions should be created per network/action.