Menghubungkan Database Production

Produk web interaktif biasanya memerlukan database production sebelum bisa di-publish. Produk kamu yang sudah di-publish berjalan di server GetLaunch, jadi database lokal seperti localhost, 127.0.0.1, atau SQLite berbasis file tidak dapat dijangkau setelah deployment.

Gunakan database Postgres hosted seperti Neon, Supabase, RDS, atau provider lain, lalu tambahkan connection string-nya ke environment production sebagai DATABASE_URL. Untuk Supabase, Getlaunch bisa mengisinya untukmu.


Yang Perlu Ditambahkan

Sebagian besar app hasil generate memakai environment variable ini:

DATABASE_URL=postgresql://user:password@host:5432/database?sslmode=require

Gunakan connection string yang diberikan provider untuk app: yang pooled untuk Neon, Session pooler untuk Supabase. Jangan tempel URL development lokal.

Jika app kamu memakai fitur client Supabase, app mungkin juga membutuhkan:

NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key

Tambahkan hanya key yang memang digunakan oleh produk hasil generate.


Neon

  1. Buat atau buka project di Neon.
  2. Klik Connect.
  3. Pilih database dan role yang akan digunakan app.
  4. Aktifkan Connection pooling lalu salin connection string itu. Host-nya mengandung -pooler.
  5. Di Getlaunch, buka tinjauan environment production workspace.
  6. Tempel nilainya ke DATABASE_URL.
  7. Publish workspace.

Gunakan string pooled, terutama untuk web app bayar sesuai pemakaian: beberapa salinan app kamu bisa melayani pengunjung bersamaan, masing-masing dengan koneksi database sendiri, dan string direct kehabisan koneksi saat ramai. String pooled bisa dipakai app kamu dan untuk pembaruan tabel yang dijalankan saat publish.

Pastikan URL yang disalin diawali postgresql:// atau postgres:// dan mengarah ke hostname Neon hosted.


Supabase

Hubungkan Supabase (disarankan)

  1. Di Getlaunch, buka tinjauan environment production workspace.
  2. Di bawah DATABASE_URL, pilih Hubungkan Supabase, lalu setujui Getlaunch di jendela Supabase.
  3. Pilih salah satu:
    • Project baru: tentukan nama dan region, lalu pilih Buat database. Getlaunch membuat project beserta password-nya. Begitu database siap, biasanya 1–2 menit, DATABASE_URL terisi.
    • Project yang sudah ada: pilih project, ketik password database-nya, lalu pilih Pakai database ini. Getlaunch mengecek password itu sebelum mengisi DATABASE_URL. Kalau lupa, reset di Supabase lewat Project Settings → Database.
  4. Publish workspace.

Getlaunch selalu mengisi connection string Session pooler, yang bisa dijangkau app kamu yang sudah di-publish. Akses ke akun Supabase kamu hanya berlaku selama setup ini. Lain kali, hubungkan lagi.

Tempel sendiri

  1. Buka project kamu di Supabase, lalu pilih Connect.
  2. Salin connection string Session pooler. Jangan pakai koneksi direct (db.<project>.supabase.co): koneksi itu hanya bisa lewat IPv6, jadi app yang sudah di-publish tidak bisa menjangkaunya. Jangan pakai Transaction pooler (port 6543) juga: client database app kamu memakai prepared statement, yang tidak disimpan pooler itu, sehingga query bisa mengembalikan hasil yang salah.
  3. Ganti placeholder password dengan password database yang benar.
  4. Di Getlaunch, buka tinjauan environment production workspace.
  5. Tempel nilainya ke DATABASE_URL.
  6. Publish workspace.

Untuk app yang memakai Supabase Auth, Storage, atau client API, tambahkan juga Supabase URL dan anon key jika app hasil generate memintanya.


Provider Postgres Lain

Kamu dapat memakai provider Postgres hosted apa pun yang menyediakan connection string publik. Nilainya sebaiknya mencakup:

  • Username
  • Password
  • Hostname
  • Port
  • Nama database
  • Kebutuhan SSL jika provider memerlukannya

Jangan gunakan database private-only kecuali Getlaunch dapat menjangkaunya dari internet publik.


Error Umum

localhost atau 127.0.0.1

Container deployment tidak dapat menjangkau laptop atau preview sandbox kamu. Gunakan URL database hosted.

Password salah

Salin ulang connection string dan ganti placeholder password jika ada.

SSL diperlukan

Tambahkan opsi SSL dari provider, biasanya ?sslmode=require, jika provider memerlukan koneksi terenkripsi.

Database tidak ada

Pastikan nama database di URL sama dengan database yang dibuat di provider.

Migrasi belum berjalan

Sebagian app hasil generate membuat tabel saat build atau startup, sementara app lain memerlukan command migrasi. Periksa output workspace atau log deployment untuk error migrasi.