mirror of
https://github.com/fosrl/pangolin.git
synced 2025-06-20 20:35:43 +02:00
1.3 KiB
1.3 KiB
Database
Pangolin can use a Postgres or SQLite database to store its data.
Development
Postgres
To use Postgres, edit server/db/index.ts
to export all from server/db/pg/index.ts
:
export * from "./pg";
Make sure you have a valid config file with a connection string:
postgres:
connection_string: postgresql://postgres:postgres@localhost:5432
You can run an ephemeral Postgres database for local development using Docker:
docker run -d \
--name postgres \
--rm \
-p 5432:5432 \
-e POSTGRES_PASSWORD=postgres \
-v $(mktemp -d):/var/lib/postgresql/data \
postgres:17
SQLite
To use SQLite, edit server/db/index.ts
to export all from server/db/sqlite/index.ts
:
export * from "./sqlite";
No edits to the config are needed. If you keep the Postgres config, it will be ignored.
Generate and Push Migrations
Ensure drizzle-kit is installed.
Postgres
You must have a connection string in your config file, as shown above.
npm run db:pg:generate
npm run db:pg:push
SQLite
npm run db:sqlite:generate
npm run db:sqlite:push
Build Time
There is a dockerfile for each database type. The dockerfile swaps out the server/db/index.ts
file to use the correct database type.