sourcebot/packages/db
2025-11-04 20:21:12 -08:00
..
prisma chore(worker): Refactor permission syncing join table to be between Account <> Repo (#600) 2025-11-04 20:12:07 -08:00
src v3 effort (#158) 2025-03-31 22:34:42 -07:00
tools move @sourcebot/logger into the shared package 2025-11-04 20:21:12 -08:00
.gitignore v3 effort (#158) 2025-03-31 22:34:42 -07:00
package.json move @sourcebot/logger into the shared package 2025-11-04 20:21:12 -08:00
README.md v3 effort (#158) 2025-03-31 22:34:42 -07:00
tsconfig.json v3 effort (#158) 2025-03-31 22:34:42 -07:00

@sourcebot/db

This package contains the database schema (prisma/schema.prisma), migrations (prisma/migrations) and the client library for interacting with the database. Before making edits to the schema, please read about prisma's migration model to get an idea of how migrations work.

Tools

This library contains a /tools directory with a collection of tooling needed for database management. Notable tools are:

  • yarn tool:prisma - runs the prisma CLI with an additional required param --url, the connection URL of the database you want the command to run against. This tool is geared towards running commands against non-dev database like staging or prod since 1) it allows you to quickly switch between environments, and 2) connection URLs do not need to be persisted in a DATABASE_URL environment variable. Examples:
# Run prisma studio
yarn tool:prisma studio --url postgresql://username:password@url:5432/db_name

# Rollback a migration
yarn tool:prisma migrate resolve --rolled-back "migration_name" --url postgresql://username:password@url:5432/db_name
  • yarn tool:run-script - runs a script (located in the /tools/scripts directory) that performs some operations against the DB. This is useful for writing bespoke CRUD operations while still being type-safe and having all the perks of the prisma client lib.
# Run `migrate-duplicate-connections.ts`
yarn tool:run-script --script  migrate-duplicate-connections --url postgresql://username:password@url:5432/db_name