packages/db๋ Harness Docs์ PostgreSQL ์์ ๊ณ์ธต ํจํค์ง์
๋๋ค.
์ด ์ํฌ์คํ์ด์ค๋ ์๋ฒ ์ธก์์ ์ฌ์ฉํ๋ DB ์ฐ๊ฒฐ, Drizzle ์คํค๋ง, ๋ง์ด๊ทธ๋ ์ด์ , ํ์ ์์ ํ ์ง์ ์ ์ ํ๊ณณ์ ๋ชจ์๋๋ค. API๋ ์ด ํจํค์ง๋ฅผ ํตํด ์์ ๊ณ์ธต์ ์ฌ์ฉํ๊ณ , desktop์ ์ง์ ์์กดํ์ง ์๋ ๊ฒ์ ์ ์ ๋ก ํฉ๋๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ์ค์
- Drizzle ์คํค๋ง ์ ์
- ๋ง์ด๊ทธ๋ ์ด์ ์์ฑ๊ณผ ์ ์ฉ
- API๊ฐ ์ฌ์ฉํ๋ DB client์ ๊ณต๊ฐ entrypoint ์ ๊ณต
src/config.ts: DB ์ค์ src/client.ts: DB ํด๋ผ์ด์ธํธ ์์ฑsrc/schema.ts: ํ ์ด๋ธ, enum, relation ์คํค๋งsrc/index.ts: ์ธ๋ถ ๊ณต๊ฐ ์ง์ ์ migrations/: ์์ฑ๋ ๋ง์ด๊ทธ๋ ์ด์ ์ฐ์ถ๋ฌผ
์ ์ฅ์ ๋ฃจํธ์์ ์คํํฉ๋๋ค.
pnpm db:up
pnpm db:migrate์์ฃผ ์ฐ๋ ๋ช ๋ น:
pnpm db:generate
pnpm db:test:up
pnpm db:test:prepare
pnpm db:test:down
pnpm db:studio
pnpm check:dbDrizzle Studio ๊ธฐ๋ณธ ์ฃผ์:
http://127.0.0.1:4983
๊ธฐ๋ณธ์ ์ผ๋ก ์๋ ๊ฐ์ ์ฌ์ฉํฉ๋๋ค.
DATABASE_URL=postgresql://harness_docs:harness_docs@127.0.0.1:5432/harness_docs
TEST_DATABASE_URL=postgresql://harness_docs:harness_docs@127.0.0.1:5433/harness_docs_test
PGHOST=127.0.0.1
PGPORT=5432
PGUSER=harness_docs
PGPASSWORD=harness_docs
PGDATABASE=harness_docsTEST_DATABASE_URL๋ ํ์์ ๋๋ค. dev DB fallback์ ํ์ฉํ์ง ์์ต๋๋ค.TEST_DATABASE_URL๋DATABASE_URL์ ๊ฐ์ ์ ์์ต๋๋ค.pnpm db:test:up์db-test์ ์ฉ Postgres container๋ฅผ ๋์๋๋ค.pnpm db:test:prepare๋db-test์ ์ฐ๊ฒฐํด test DB๋ฅผ ์ค๋นํ๊ณ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ ์ฉํฉ๋๋ค.
- ์คํค๋ง์ ์ฐ๊ฒฐ ์ค์ ์ ์ด ํจํค์ง๋ก ๋ชจ์๋๋ค.
- API ์ฝ๋์ DB ์ธ๋ถ ๊ตฌํ์ด ํฉ์ด์ง์ง ์๋๋ก ํฉ๋๋ค.
- ์์ฑ๋ ๋ง์ด๊ทธ๋ ์ด์ ์ ์์ฑ ๊ท์น์ผ๋ก ๊ด๋ฆฌํ๊ณ ์๋ ํธ์ง์ ํผํฉ๋๋ค.
- ๋ง์ด๊ทธ๋ ์ด์ ๊ณผ ํ์ ์ฒดํฌ๊ฐ ํญ์ ๊ฐ์ ์คํค๋ง ์์ค๋ฅผ ๊ธฐ์ค์ผ๋ก ๋์ค๊ฒ ์ ์งํฉ๋๋ค.