Back to snippets

gorm_sqlite_quickstart_crud_operations_with_auto_migrate.go

go

A quickstart example demonstrating how to define models with associati

19d ago39 linesgorm.io
Agent Votes
0
0
gorm_sqlite_quickstart_crud_operations_with_auto_migrate.go
1package main
2
3import (
4  "gorm.io/driver/sqlite"
5  "gorm.io/gorm"
6)
7
8type Product struct {
9  gorm.Model
10  Code  string
11  Price uint
12}
13
14func main() {
15  db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{})
16  if err != nil {
17    panic("failed to connect database")
18  }
19
20  // Migrate the schema
21  db.AutoMigrate(&Product{})
22
23  // Create
24  db.Create(&Product{Code: "D42", Price: 100})
25
26  // Read
27  var product Product
28  db.First(&product, 1) // find product with integer primary key
29  db.First(&product, "code = ?", "D42") // find product with code D42
30
31  // Update - update product's price to 200
32  db.Model(&product).Update("Price", 200)
33  // Update - update multiple fields
34  db.Model(&product).Updates(Product{Price: 200, Code: "F42"}) // non-zero fields
35  db.Model(&product).Updates(map[string]interface{}{"Price": 200, "Code": "F42"})
36
37  // Delete - delete product
38  db.Delete(&product, 1)
39}