Gambaran umum
Prisma dan PostgreSQL — Docker lokal, Neon, Supabase, atau Railway.
TurboJet menyertakan lapisan database pra-konfigurasi dengan Prisma dan PostgreSQL. Schema dan client ada di packages/database.
Kit ini tidak menyertakan Drizzle, MySQL, atau SQLite. Gunakan PostgreSQL secara lokal atau lewat provider terkelola.
Memperbarui schema
Edit schema.prisma, migrate, push, dan generate.
Memakai client database
Query dan mutasi dengan db dari @repo/database.
Memakai database studio
Jelajahi dan edit data di Prisma Studio.
Lokal (Docker)
Postgres lokal yang disarankan lewat docker-compose.
Neon Postgres
Postgres serverless dengan pooling dan branching.
Supabase Postgres
Postgres terkelola dengan pooling Supavisor.
Railway Postgres
Postgres terkelola yang sederhana.
Untuk development harian, mulai dari Lokal (Docker). Pakai Neon, Supabase, atau Railway saat Anda butuh database hosted.
Script paket
| Perintah | Tujuan |
|---|---|
pnpm docker:up | Menjalankan Postgres (+ Mailpit) |
pnpm prisma:migrate | db:migrate (memakai DIRECT_URL) |
pnpm --filter @repo/database db:generate | Regenerasi Prisma Client |
pnpm --filter @repo/database db:push | Push schema tanpa file migrasi |
pnpm --filter @repo/database db:studio | Membuka Prisma Studio |
pnpm --filter @repo/database db:seed | Seed pengguna |
pnpm --filter @repo/database db:migrate:deploy | Terapkan migrasi (CI / prod) |
DATABASE_URL vs DIRECT_URL
Docker lokal boleh memakai string yang sama untuk keduanya. Host pooled
(Neon, Supabase) memakai pooler sebagai DATABASE_URL dan endpoint langsung
sebagai DIRECT_URL — script migrate sementara menyetel DATABASE_URL ke
DIRECT_URL.
Pertanyaan yang sering diajukan
Database apa yang harus dipakai?
PostgreSQL adalah satu-satunya database yang didukung. Prefer Lokal (Docker) untuk development; pilih Neon, Supabase, atau Railway untuk lingkungan hosted.
Apakah TurboJet mendukung Drizzle atau MySQL?
Tidak. Paket database hanya Prisma + PostgreSQL.
Di mana menaruh query?
Panggil db dari kode server — biasanya service di packages/api/src/modules/*/service.ts. Jangan mengimpor @repo/database di client component.