mirror of
https://github.com/sourcebot-dev/sourcebot.git
synced 2025-12-12 12:25:22 +00:00
25 lines
1.6 KiB
Markdown
25 lines
1.6 KiB
Markdown
|
|
# @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](https://www.prisma.io/docs/orm/prisma-migrate/understanding-prisma-migrate/mental-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:
|
||
|
|
|
||
|
|
```sh
|
||
|
|
# 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.
|
||
|
|
|
||
|
|
```sh
|
||
|
|
# Run `migrate-duplicate-connections.ts`
|
||
|
|
yarn tool:run-script --script migrate-duplicate-connections --url postgresql://username:password@url:5432/db_name
|
||
|
|
```
|