postgreSQL 에 특화된 ORM 입니다.
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>
구조체를 사용한 모델링
type user struct {
Id int
Profile Profile //JSONB
}
type Profile struct {
Name string
...
}