Langsung ke konten utama

Menghubungkan Nexjs 14 ke db "Supabase" menggunakan Prisma

Oke langsung saja pertama kalian buat dulu project nextjs nya.

npx create-next-app@latest

Jika sudah install Prisma nya ke project nexjs kalian.

npm i -D prisma

Install juga prisma client jika dalam konteks ini @prisma/client akan berfungsi sebagai ORM (Object-Relational Mapping) untuk berinteraksi dengan database.

npm i @prisma/client

Lalu untuk membuat Config prisma ketikan perintah berikut.

npx prisma init

Jika sudah kalian akan melihat folder "prisma" dan file ".env"

Nah sekarang saatnya menghubungkan database ke supabase, pertama kalian buat dulu akun dan projectnya di supabase https://supabase.com

Jika sudah klik link/tombol bertulisan Connect 

karena dalam hal ini kita menggunakan ORM Prisma maka pilih yang ORMs dan pada .env.lcoal kalian copy dan masukan ke .env yang ada pada project nextjs kalian, contoh seperti berikut ini.

# Connect to Supabase via connection pooling with Supavisor.

DATABASE_URL="postgresql://postgres.ewvyhblrqcpgwnjrmgxn:[YOUR-PASSWORD]@aws-0-ap-southeast-1.pooler.supabase.com:6543/postgres?pgbouncer=true"


# Direct connection to the database. Used for migrations.

DIRECT_URL="postgresql://postgres.ewvyhblrqcpgwnjrmgxn:[YOUR-PASSWORD]@aws-0-ap-southeast-1.pooler.supabase.com:5432/postgres"

pada bagian [YOUR-PASSWORD] ganti dengan password kalian saat membuat project di supabase.

lalu buka file /prisma/schema.prisma dan ganti kode baris berikut.

datasource db {

  provider = "postgresql"

  url      = env("DATABASE_URL")

}

Dengan yang ada pada supabase.

datasource db {

  provider  = "postgresql"

  url       = env("DATABASE_URL")

  directUrl = env("DIRECT_URL")

}

Lalu kalian bisa menambahkan Table database agar memudahkanya dan menguji apakah sudah terhubung dengan baik. Dalam contoh kasus berikut ini kita akan membuat table dengan nama "Contact" dan isi datanya sekaligus. Kamu bisa meletakanya tepat dibawah kode database sebelumnya pada /prisma/schema.prisma

model Contact {

  id String @id @default(cuid())

  name String

  phone String

  createdAt DateTime @default(now())

  updateAt DateTime @updatedAt

}

Jika sudah kalian save sekarang ketikan perintah berikut pada terminal.

npx prisma migrate dev

Lalu kamu akan diminta memberikan nama pada migrasi baru tersebut, dalam hal ini biasanya saya memberikan nama "init" saja. Jika muncul hal berikut pada terminal.

Your database is now in sync with your schema.

Itu artinya kamu bisa melihatnya pada table di supabase apakah sudah muncul table dengan nama "Contact" dan jika sudah muncul itu artinya kamu sudah berhasil menghubungkan project nexjs14 kamu dengan supabase menggunakan prisma. 

Apabila kamu saat pertama kali upload ke hosting atau sebagainya biasanya database tidak terhubung dengan benar, kamu bisa mengetikan perintah berikut.

npx prisma generate

Atau jika kamu menemukan kendala mungkin postingan dibawah ini bisa membantu memberikan solusi.

Vercel Deploy Error "Prisma's auto-generation isn't triggered."

        

Postingan populer dari blog ini

3 Cara Otomatis Replace index.php di Linux Ubuntu: Systemd, Cron, dan Shell Loop

Ada beberapa cara untuk membuat Linux Ubuntu otomatis mengganti atau memperbarui file: /var/www/html/index.php secara berkala dari script lokal. Tiga metode yang paling umum adalah: Systemd Service + Timer Cron Shell Loop + nohup Di bawah ini adalah contoh implementasinya. 1. Menggunakan Systemd Service + Timer Metode ini paling cocok untuk VPS atau server Ubuntu normal yang menggunakan systemd . Buat script update sudo nano /usr/local/bin/update-index.sh Isi: #!/bin/sh cat > /var/www/html/index.php <<'EOF' <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Website</title> </head> <body> <h1>INDEX OTOMATIS</h1> </body> </html> EOF Beri permission execute: sudo chmod +x /usr/local/bin/update-index.sh Buat service sudo nano /etc/systemd/system/update-index.service Isi: [Unit] Description=Update index.php [Service] Type=oneshot ExecStart=/usr/local...

Tutorial Dasar GSocket dan gs-netcat di Windows dan Ubuntu

GSocket atau Global Socket Toolkit adalah kumpulan tool yang memungkinkan dua komputer membuat koneksi TCP melalui Global Socket Relay Network (GSRN) . Salah satu tool di dalamnya adalah gs-netcat . Berbeda dengan koneksi TCP tradisional yang biasanya membutuhkan alamat IP dan port tujuan, GSocket memungkinkan dua endpoint saling menemukan berdasarkan sebuah shared secret . Koneksi antarendpoint kemudian dapat dilindungi dengan enkripsi end-to-end. Gambaran Cara Kerja Secara sederhana: Windows | | outbound connection v Global Socket Relay Network ^ | outbound connection | Ubuntu Artinya Ubuntu tidak harus membuka sebuah port publik khusus agar endpoint GSocket dapat berkomunikasi. Ini berbeda dengan SSH langsung: Windows | | SSH v IP Ubuntu:22 Pada SSH biasa, Windows harus mengetahui IP atau domain server serta port SSH yang dapat dijangkau. Apakah gs-netcat Tersedia di Windows? Ya. GSocket menyediakan gs-netcat yang dapat digunaka...