Neon Postgres
Postgres serverless dengan connection pooling dan branching untuk TurboJet.
Neon adalah platform PostgreSQL serverless dengan connection pooling, database branching, dan autoscaling. Pakai saat Anda deploy di luar Docker Compose lokal.
Default lokal
Development harian tetap memakai Lokal (Docker). Neon opsional untuk lingkungan hosted atau serverless. Lihat juga Supabase dan Railway.
1. Buat akun dan project Neon
Buka neon.tech, buat akun, lalu buat project. Pilih region yang dekat dengan deployment Anda untuk latensi lebih rendah.
2. Ambil connection string
Neon menyediakan dua connection string di Connection Details:
- Pooled (hostname berisi
-pooler): untuk runtime agar koneksi efisien. - Direct: untuk migrasi yang butuh koneksi persisten.
postgresql://user:[email protected]/neondb?sslmode=requirepostgresql://user:[email protected]/neondb?sslmode=require3. Konfigurasi variabel lingkungan
Di .env root repositori:
DATABASE_URL="postgresql://user:[email protected]/neondb?sslmode=require"
DIRECT_URL="postgresql://user:[email protected]/neondb?sslmode=require"DATABASE_URL dipakai Prisma Client saat runtime. DIRECT_URL dibutuhkan oleh script migrate/pull.
4. Bagaimana migrasi memakai DIRECT_URL
Kit ini tidak memakai prisma.config.ts atau field directUrl di schema.prisma. Sebaliknya, script paket sementara mengarahkan Prisma ke URL langsung:
"db:migrate": "dotenv -e ../../.env -- sh -c 'DATABASE_URL=\"$DIRECT_URL\" prisma migrate dev'"Pola yang sama berlaku untuk db:migrate:deploy, db:migrate:reset, dan db:pull. Query runtime tetap memakai DATABASE_URL pooled dari .env.
5. Push atau migrate schema
pnpm --filter @repo/database db:migrate
# atau, tanpa riwayat migrasi:
pnpm --filter @repo/database db:push
pnpm --filter @repo/database db:generate6. Verifikasi
pnpm devBranching Neon membuat salinan database terisolasi untuk preview dan CI. Pasangkan connection string branch dengan environment preview bila perlu.
Pertanyaan yang sering diajukan
Apakah Neon mendukung connection pooling?
Ya, lewat PgBouncer. Pakai endpoint pooled (-pooler) untuk DATABASE_URL dan endpoint langsung untuk DIRECT_URL.
Bisakah memakai Neon dengan setup Prisma kit ini?
Ya. Tetap provider = "postgresql" dan setel kedua URL seperti di atas. Tidak perlu jalur Drizzle.