
Merancang Bentuk Lemari Penyimpanan (Data Modeling)
Sebelum kita bisa memasukkan data Budi ke dalam *Database*, kita harus merancang "Struktur Tabel" (Kolom apa saja yang ada, tipe datanya apa). Di metode tradisional, kamu harus membuka aplikasi seperti *DBeaver* atau *pgAdmin*, lalu mengklik Create Table secara visual.
Di metode modern, kita menggunakan konsep Schema as Code. Kita menulis rancangan tabel tersebut menggunakan teks di dalam file schema.prisma. Jika kita pindah komputer, kita cukup membawa file teks ini, tidak perlu me-backup *Database* kosongnya!
Menulis Model Pertamamu
Buka file prisma/schema.prisma. Di bagian paling bawah, mari kita buat rancangan untuk Tabel User.
// Ini adalah cetak biru Tabel User di Postgres
model User {
id Int @id @default(autoincrement())
nama String
email String @unique
password String
createdAt DateTime @default(now())
}Cara Membaca Kode di Atas:
@id: Ini adalah Primary Key (Kunci Utama).@default(autoincrement()): ID akan otomatis diisi dengan angka urut 1, 2, 3 oleh *Database*.String: Tipe data untuk Teks.@unique: Tidak boleh ada 2 pengguna yang mendaftar dengan email yang sama. Database akan menolak kembaran.@default(now()): Catat tanggal dan jam secara otomatis kapan akun ini dibuat.
Sihir Bernama Database Migration
Kode di atas MASIH BERUPA TEKS di VS Code-mu. Tabel User tersebut belum nyata ada di dalam sistem PostgreSQL!
Untuk menyulap teks tersebut menjadi tabel nyata di *database*, kita menggunakan alat yang disebut Migration (Migrasi). Migrasi bertugas membandingkan isi file schema.prisma dengan kondisi *Database* asli, lalu mengirimkan perintah SQL untuk menyamakannya.
Buka terminal, ketik perintah ini:
npx prisma migrate dev --name init_tabel_userPrisma akan langsung membaca .env, mengetuk pintu PostgreSQL-mu, dan menyuruhnya membuat Tabel User beserta kolom-kolomnya detik itu juga! Selamat, arsitektur Database-mu sudah siap digunakan.
Mau langsung pakai template?
Jelajahi template gratis dan premium di TampilKit untuk mempercepat proses development project kamu.
Browse Templates