Setup Proyek Prisma

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:

  1. Nginstal Prisma CLI (Command Line Interface): Ini alat bantu utama kita buat ngejalanin perintah-perintah Prisma.
  2. 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:

  1. 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:
      bashbash
      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).
  2. 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):
      1. Bikin folder baru buat proyekmu: mkdir proyek-prisma-saya
      2. Masuk ke folder itu: cd proyek-prisma-saya
      3. Inisialisasi proyek Node.js (bikin file package.json): npm init -y (opsi -y biar langsung pake default).
      4. Kalau mau pake TypeScript, instal TypeScript sebagai dev dependency: npm install --save-dev typescript @types/node
      5. Bikin file tsconfig.json dasar: npx tsc --init (inget, npx buat ngejalanin package tanpa instal global). Sesuaikan tsconfig.json seperlunya (misal, aktifin strict, set target, module).

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:

    bashbash
    npm install prisma --save-dev
  • Kalau pake yarn:

    bashbash
    yarn add prisma --dev
  • prisma: Nama package Prisma CLI.

  • --save-dev (buat npm) atau --dev (buat yarn): Ngasih tau package manager buat nyimpen prisma ini di bagian "devDependencies" di file package.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:

bashbash
npx prisma init
  • npx prisma init: Kita pake npx di sini biar bisa langsung ngejalanin perintah prisma dari package lokal yang baru aja kita instal di node_modules.

Apa yang Dihasilkan Sama npx prisma init?

Kalau berhasil, kamu bakal liat output mirip kayak gini:

bashbash
 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:

  1. 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.
  2. 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! (Prisma init biasanya udah otomatis nambahinnya ke .gitignore kalau file itu udah ada).

Isi Awal File prisma/schema.prisma:

prismaprisma
// 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. Defaultnya postgresql. Kita bakal ganti ini jadi sqlite 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 variabel DATABASE_URL di file .env-mu.

Isi Awal File .env:

envenv
# 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.

  1. Ubah provider di schema.prisma: Buka file prisma/schema.prisma dan ganti bagian datasource db jadi kayak gini:

    prismaprisma
    // prisma/schema.prisma
    // ... (bagian generator client biarin aja) ...
     
    datasource db {
      provider = "sqlite" // Ganti jadi "sqlite"
      url      = env("DATABASE_URL")
    }
  2. Ubah DATABASE_URL di .env: Buka file .env dan ganti isinya jadi kayak gini:

    envenv
    # .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 namanya dev.db dan lokasinya relatif terhadap direktori tempat schema.prisma berada (yaitu di dalem folder prisma/). Kalau file dev.db ini belum ada, Prisma bakal bikinin pas kita jalanin migrasi pertama nanti.
    • Jika kamu menempatkan .env di root project dan schema.prisma di dalam folder prisma, maka path yang lebih tepat mungkin DATABASE_URL="file:./prisma/dev.db" agar file dev.db dibuat di dalam folder prisma.
  3. (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:

    gitignoregitignore
    # .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.

Uji Pemahamanmu!

Memeriksa status login...