Ent
简介
- facebook开发的golang数据库ORM
- 使用前需要定义schema,可以从数据库导入
使用方法
// get ent
go run -mod=mod entgo.io/ent/cmd/ent init
// get entimport
go run -mod=mod ariga.io/entimport/cmd/entimport -h
// copy schema from our database
go run ariga.io/entimport/cmd/entimport -dsn "postgres://postgresql:postgresql@domain:port/service?sslmode=disable"
// genertate code
go generate ./ent
// add OnConflict()
go run -mod=mod entgo.io/ent/cmd/ent generate --feature sql/upsert ./ent/schema
// mock db test
import (
_ "github.com/mattn/go-sqlite3"
".../ent/enttest"
"testing"
)
func NewMockTrainServiceDB(t *testing.T) *TrainServiceDB {
client := enttest.Open(t, "sqlite3", "file:ent.db?mode=memory&_fk=1")
return &TrainServiceDB{
client: client,
}
}
注意事项
- 目前不支持default,需要手动添加相应字段的值
参考资料