Setup Proyek Prisma
Langkah pertama menggunakan Prisma! Panduan instalasi Prisma CLI sebagai dev dependency menggunakan npm/yarn dan cara menginisialisasi Prisma dalam proyek Node.js atau TypeScript baru maupun yang sudah ada.
"Buka Toko" Prisma: Instalasi dan Inisialisasi Proyek!
Udah semangat mau nyobain kemudahan Prisma buat ngobrol sama database? Mantap! Langkah pertama yang perlu kita lakuin adalah nyiapin "toko" Prisma kita di dalem proyek Node.js atau TypeScript. Ini melibatkan dua hal utama:
- Nginstal Prisma CLI (Command Line Interface): Ini alat bantu utama kita buat ngejalanin perintah-perintah Prisma.
- Nginisialisasi Prisma di Proyek: Ini bakal nge-generate beberapa file konfigurasi penting buat Prisma.
Yuk, kita mulai!
Prasyarat (Yang Seharusnya Udah Ada)
Sebelum nginstal Prisma, pastiin dulu beberapa hal ini udah nangkring di komputermu:
-
Node.js dan npm (atau yarn):
- Prisma itu alat buat ekosistem Node.js, jadi Node.js wajib ada. Nginstal Node.js biasanya udah otomatis dapet npm juga.
- Cek versinya di terminal:
bash
node -v npm -v # atau yarn --version kalau kamu pake yarn
- Kalau belum ada, intip lagi panduan Prasyarat & Ekosistem React bagian instalasi Node.js (meskipun ini panduan Prisma, cara instal Node.js-nya sama).
-
Proyek Node.js/TypeScript yang Sudah Ada atau Baru:
- Kamu bisa nambahin Prisma ke proyek Node.js/TypeScript yang udah ada, atau bikin proyek baru dari nol.
- Kalau mau bikin proyek baru dari nol (misalnya, buat latihan Prisma ini):
- Bikin folder baru buat proyekmu:
mkdir proyek-prisma-saya
- Masuk ke folder itu:
cd proyek-prisma-saya
- Inisialisasi proyek Node.js (bikin file
package.json
):npm init -y
(opsi-y
biar langsung pake default). - Kalau mau pake TypeScript, instal TypeScript sebagai dev dependency:
npm install --save-dev typescript @types/node
- Bikin file
tsconfig.json
dasar:npx tsc --init
(inget,npx
buat ngejalanin package tanpa instal global). Sesuaikantsconfig.json
seperlunya (misal, aktifinstrict
, settarget
,module
).
- Bikin folder baru buat proyekmu:
Langkah 1: Instalasi Prisma CLI sebagai Dev Dependency
Prisma CLI adalah alat command line yang bakal kita pake buat ngejalanin semua perintah Prisma (kayak bikin skema, migrasi, generate client). Praktik terbaiknya adalah nginstal Prisma CLI sebagai dev dependency (ketergantungan pengembangan) di proyek kita. Artinya, dia cuma dibutuhin pas lagi development, gak perlu ikut ke-bundle di aplikasi produksi.
Buka terminalmu, pastikan kamu udah ada di direktori root proyekmu (tempat package.json
berada), terus jalanin perintah:
-
Kalau pake npm:
bash
npm install prisma --save-dev
-
Kalau pake yarn:
bash
yarn add prisma --dev
-
prisma
: Nama package Prisma CLI. -
--save-dev
(buat npm) atau--dev
(buat yarn): Ngasih tau package manager buat nyimpenprisma
ini di bagian"devDependencies"
di filepackage.json
-mu.
Tunggu sampe proses instalasinya selesai.
Langkah 2: Inisialisasi Prisma di Proyek (prisma init
)
Setelah Prisma CLI keinstal, langkah berikutnya adalah nginisialisasi Prisma di proyekmu. Perintah ini bakal nge-generate beberapa file dan folder penting buat Prisma.
Masih di terminal, di root proyekmu, jalanin perintah:
npx prisma init
npx prisma init
: Kita pakenpx
di sini biar bisa langsung ngejalanin perintahprisma
dari package lokal yang baru aja kita instal dinode_modules
.
Apa yang Dihasilkan Sama npx prisma init
?
Kalau berhasil, kamu bakal liat output mirip kayak gini:
✔ Your Prisma schema was created at prisma/schema.prisma
You can now open it in your favorite editor.
warn Prisma detected that you do not have a `DATABASE_URL` defined in your .env file.
To configure your database, please set the `DATABASE_URL` environment variable in the .env file.
You can learn more about this at https://pris.ly/d/connection-strings
Next steps:
1. Set the DATABASE_URL in the .env file to point to your existing database. If your database has no tables yet, read https://pris.ly/d/getting-started
2. Set the provider of the datasource block in schema.prisma to match your database: postgresql, mysql, sqlite, sqlserver, mongodb or cockroachdb.
3. Run prisma db pull to turn your database schema into a Prisma schema.
4. Run prisma generate to generate the Prisma Client. You can then start querying your database.
More information in our documentation:
https://pris.ly/d/getting-started
Dan, yang paling penting, perintah ini bakal bikin dua hal baru di proyekmu:
-
Folder
prisma/
:- Di dalem folder root proyekmu, bakal ada folder baru namanya
prisma
. - Di dalem
prisma/
ini, ada satu file penting:schema.prisma
. Ini adalah "jantung" dari konfigurasi databasemu di Prisma, tempat kamu bakal ngedefinisiin model data dan koneksi database.
- Di dalem folder root proyekmu, bakal ada folder baru namanya
-
File
.env
:- Di folder root proyekmu, bakal ada file baru namanya
.env
. - File ini dipake buat nyimpen environment variables (variabel lingkungan), salah satunya yang paling penting adalah
DATABASE_URL
. Ini adalah string koneksi yang ngasih tau Prisma cara nyambung ke databasemu (misal, jenis database, alamat server, username, password, nama database). - PENTING: File
.env
ini biasanya gak boleh di-commit ke Git repository publik karena seringkali isinya informasi sensitif (kayak password database). Pastiin kamu nambahin.env
ke file.gitignore
-mu! (Prismainit
biasanya udah otomatis nambahinnya ke.gitignore
kalau file itu udah ada).
- Di folder root proyekmu, bakal ada file baru namanya
Isi Awal File prisma/schema.prisma
:
// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema
// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions?
// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql" // INI PERLU DISESUAIKAN!
url = env("DATABASE_URL")
}
generator client
: Ngasih tau Prisma buat nge-generate Prisma Client (yang bakal kita pake buat query).datasource db
: Ini blok buat ngatur koneksi ke databasemu.provider
: Jenis database yang kamu pake. Defaultnyapostgresql
. Kita bakal ganti ini jadisqlite
buat contoh awal kita biar gampang, karena SQLite gak perlu instal server database terpisah. Pilihan lain:mysql
,sqlserver
,mongodb
,cockroachdb
.url
: String koneksi ke database.env("DATABASE_URL")
artinya dia bakal ngambil nilainya dari variabelDATABASE_URL
di file.env
-mu.
Isi Awal File .env
:
# Environment variables declared in this file are automatically made available to Prisma.
# See the documentation for more detail: https://pris.ly/d/prisma-schema#accessing-environment-variables-from-the-schema
# Prisma supports the native connection string format for PostgreSQL, MySQL, SQL Server, SQLite, MongoDB and CockroachDB.
# See the documentation for an overview: https://pris.ly/d/connection-strings
DATABASE_URL="postgresql://johndoe:randompassword@localhost:5432/mydb?schema=public"
# INI PERLU DISESUAIKAN!
Perhatiin, DATABASE_URL
defaultnya juga nunjuk ke PostgreSQL.
Langkah 3: Nyesuaiin Konfigurasi buat SQLite (Biar Gampang Buat Belajar)
Buat panduan ini, biar kita gak pusing nginstal server database dulu, kita bakal pake SQLite. Database SQLite itu simpel, datanya disimpen di satu file aja di komputermu.
-
Ubah
provider
dischema.prisma
: Buka fileprisma/schema.prisma
dan ganti bagiandatasource db
jadi kayak gini:prisma
// prisma/schema.prisma // ... (bagian generator client biarin aja) ... datasource db { provider = "sqlite" // Ganti jadi "sqlite" url = env("DATABASE_URL") }
-
Ubah
DATABASE_URL
di.env
: Buka file.env
dan ganti isinya jadi kayak gini:env
# .env # Kita mau file database SQLite kita namanya dev.db dan ada di dalem folder prisma/ DATABASE_URL="file:./dev.db" # Beberapa sistem mungkin butuh path absolut atau penyesuaian: # DATABASE_URL="file:../prisma/dev.db" (jika .env di root, dan db di prisma/) # Atau untuk path dari root proyek: # DATABASE_URL="file:./prisma/dev.db"
file:./dev.db
: Ini ngasih tau Prisma buat pake file database SQLite yang namanyadev.db
dan lokasinya relatif terhadap direktori tempatschema.prisma
berada (yaitu di dalem folderprisma/
). Kalau filedev.db
ini belum ada, Prisma bakal bikinin pas kita jalanin migrasi pertama nanti.- Jika kamu menempatkan
.env
di root project danschema.prisma
di dalam folderprisma
, maka path yang lebih tepat mungkinDATABASE_URL="file:./prisma/dev.db"
agar filedev.db
dibuat di dalam folderprisma
.
-
(Opsional tapi Bagus) Tambahkan
.env
ke.gitignore
(Kalau Belum Ada): Buka file.gitignore
di root proyekmu (kalau belum ada, bikin aja), terus tambahin baris ini:gitignore
# .gitignore .env # Tambahin juga folder node_modules dan file database sqlite kalau mau node_modules/ prisma/dev.db prisma/dev.db-journal # File sementara SQLite # (Tergantung mau backup file db SQLite ke Git atau enggak. Biasanya enggak.)
Ini biar file
.env
yang mungkin nanti isinya password database beneran gak ikut ke-commit.
Sip! "Toko" Prisma kita udah "dibuka" dan dikonfigurasi buat pake database SQLite yang simpel. Kita udah punya file schema.prisma
tempat kita bakal ngedesain "etalase" data kita (model-modelnya), dan file .env
buat nyimpen "kunci" ke gudang data (URL database).
Di bagian berikutnya, kita bakal mulai "nata barang" di etalase, yaitu mendesain model data kita pake Prisma Schema Language di file schema.prisma
.