postgreSQL 에 특화된 ORM 입니다.


go-pg/pg


go-pg는 앞서 작성했던 다양한 데이터 베이스를 지원하던 gorm과는 다른 postgreSQL 에 특화된 orm 입니다.

gorm과 다르게 sql를 어느정도 알고있어야 합니다.

// Example gorm, go-pg select where
var user User

// grom Select Where
db.Where(User{Name: "myName", Age: 25}).First(user)

// go-pg Select
// select by pk
user := User{Id: uid}
db.Select(user)
// select where
db.Model(user).
        Column("*").
        Where("Name=?", "myName").
        Select()

<aside> 💡 복잡한 쿼리시 sql을 알고있어야 한다는점은 동일

</aside>

Jsonb

구조체를 사용한 모델링

type user struct {
    Id int
    Profile Profile //JSONB
}
type Profile struct {
    Name string
    ...
}