Ent 数据库框架使用
它使构建和维护具有大型数据模型的应用程序变得容易,并坚持以下原则:
- 轻松地将数据库模式建模为图形结构。
- 将模式定义为可编程的Go代码。
- 基于代码生成的静态类型。
- 数据库查询和图遍历很容易编写。
- 简单地扩展和使用Go模板自定义。
为 User
添加 name、age
两个数据库字段:
package schema
import (
"entgo.io/ent"
"entgo.io/ent/schema/field"
)
// Fields of the User.
func (User) Fields() []ent.Field {
return []ent.Field{
field.Int("age").
field.String("name").
Default("unknown"),
}
}
首先,创建一个新的ent.Client。对于本例,我们将使用SQLite3。
package main
import (
"context"
"log"
"<project>/ent"
_ "github.com/mattn/go-sqlite3"
func main() {
client, err := ent.Open("sqlite3", "file:ent?mode=memory&cache=shared&_fk=1")
if err != nil {
log.Fatalf("failed opening connection to sqlite: %v", err)
}
defer client.Close()
// Run the auto migration tool.
if err := client.Schema.Create(context.Background()); err != nil {
log.Fatalf("failed creating schema resources: %v", err)
}
}