Prisma ORM
Prisma ORM adalah ORM yang dibuat oleh Prisma. Prisma ORM ini memungkinkan kita untuk melakukan query ke database tanpa perlu menuliskan query SQL. Prisma ORM ini juga mendukung banyak database seperti MySQL, PostgreSQL, MongoDB, dan lain-lain.
Instalasi
Untuk menggunakan Prisma ORM, kita perlu menginstallnya terlebih dahulu. Untuk menginstall Prisma ORM, kita perlu menginstall package @prisma/client
dengan perintah berikut:
npm install prisma -D
npm install @prisma/client
Setelah itu, kita perlu membuat file schema.prisma
yang berisi definisi dari model-model yang akan kita gunakan. Untuk membuat file schema.prisma
, kita perlu menuliskan perintah berikut:
npx prisma init
Setelah menjalankan perintah tersebut, kita akan melihat file schema.prisma
di dalam folder/direktori prisma
yang berisi definisi dari model-model yang akan kita gunakan. File schema.prisma
ini akan digunakan oleh Prisma ORM untuk melakukan query ke database.
Instal Ekstensi
Instal ekstensi Visual Studio Code Prisma
, untuk mempermudah kamu dalam menggunakan Prisma.
Membuat Model
Setelah membuat file schema.prisma
, kita perlu membuat model-model yang akan kita gunakan. Untuk membuat model, kita perlu menuliskan perintah berikut:
Contoh membuat model User
dan Post
:
model User {
id Int @id @default(autoincrement())
name String?
email String @unique
password String
posts Post[]
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
model Post {
id Int @id @default(autoincrement())
title String
content String?
published Boolean @default(false)
author User @relation(fields: [authorId], references: [id])
authorId Int
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
Kita juga dapat menggunakan cuid()
pada id
. Dengan mengubah autoincrement()
menjadi cuid()
dan mengubah tipe data Int
menjadi String
.
CUID
cuid()
mengembalikan sebuah string acak pendek dengan beberapa tindakan penangkal tabrakan. Aman digunakan sebagai id
elemen HTML, dan pencarian catatan sisi server yang unik.
Referensi: cuid - github.com (opens in a new tab)
Contoh penggunaan cuid
:
model User {
id String @id @default(cuid())
name String?
email String @unique
password String
posts Post[]
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
model Post {
id String @id @default(cuid())
title String
content String?
published Boolean @default(false)
author User @relation(fields: [authorId], references: [id])
authorId String
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
SQLite
Ada beberapa provider database yang digunakan untuk dapat menghubungkan Prisma ORM. Pada kasus kita kali ini kita akan menggunakan provider database SQLite (opens in a new tab).
Konektor sumber data SQLite menghubungkan Prisma ORM ke file database SQLite. File-file ini selalu berakhiran .db
(contoh: dev.db
).
Secara default, konektor SQLite berisi driver database yang bertanggung jawab untuk menghubungkan ke database kamu. Kamu dapat menggunakan driver adapter (opens in a new tab) (Preview) untuk menghubungkan ke database kamu menggunakan driver database JavaScript dari Prisma Client.
Untuk menyambung ke file database SQLite, kamu perlu mengonfigurasi blok datasource (opens in a new tab) dalam file skema (opens in a new tab) kamu:
datasource db {
provider = "sqlite"
url = "file:./dev.db"
}
Fields yang passed ke blok datasource
adalah:
provider
: Menentukan konektordatasource
sqlite
.url
: Menentukan Connection URL (opens in a new tab) untuk database SQLite. URL koneksi selalu dimulai dengan prefixfile:
dan kemudian berisi jalur file yang mengarah ke file database SQLite. Dalam kasus ini, file tersebut terletak di direktori yang sama dan disebutdev.db
.
Referensi: Databases - SQLite (opens in a new tab)
Prisma Migrate
Setelah setup provider dan url database SQLite. Jalankan migrasi untuk membuat tabel database kamu dengan Prisma Migrate.
npx prisma migrate dev --name init
init
adalah contoh pesan commit. Kamu dapat menggantinya dengan pesan commit yang lain, seperti: dev
, db
, dll.
npx prisma migrate dev --name dev
Prisma Migrate di atas hanya berlaku pada provider
SQLite
, jika ingin menggunakan pada provider lain sepertiPostgreSQL
gunakan perintah di bawah,
npx prisma db push
Setelah menjalankan perintah tersebut, kita akan melihat file migrations
yang berisi definisi dari model-model yang akan kita gunakan. File migrations
ini akan digunakan oleh Prisma ORM untuk melakukan query ke database.
Prisma Studio
Buka Prisma Studio untuk melihat data dari model-model yang telah kita buat.
Prisma ORM dilengkapi dengan GUI (Graphical User Interface) bawaan untuk melihat, mengedit, dan menghapus data dalam database kamu. Kamu dapat membukanya dengan menggunakan perintah berikut:
npx prisma studio
Kemudian, buka browser kamu dan ketikan http://localhost:5555 untuk melihat visual dari Prisma Studio.