GORM: Model & Migration
Penjelasan
GORM dipakai PERSIS SAMA dengan Gin seperti di Echo/Fiber — sekali lagi menegaskan bahwa ORM sepenuhnya independen dari framework web pembungkusnya. Tabel direpresentasikan sebagai struct Go, migration dijalankan lewat AutoMigrate().
Contoh Konsep
// go get gorm.io/gorm gorm.io/driver/sqlite
type Produk struct {
ID uint `gorm:"primaryKey"`
Nama string
Harga float64
}
func main() {
db, err := gorm.Open(sqlite.Open("data.db"), &gorm.Config{})
if err != nil {
panic("Gagal konek database")
}
db.AutoMigrate(&Produk{})
r := gin.Default()
// ... routes yang memakai db di sini
}
Praktikum
Buat struct Artikel dengan field ID (uint, primaryKey), Judul (string), dan Isi (string). Tulis contoh AutoMigrate(&Artikel{}) untuk membuat tabelnya.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Pola meneruskan instance *gorm.DB ke handler Gin biasanya lewat closure (menangkap variabel db dari scope main()) untuk project kecil, atau lewat dependency injection manual/c.Set("db", db) untuk project lebih besar — Gin sendiri tidak punya sistem DI bawaan seperti NestJS/Spring.