Ent 数据库框架使用

    它使构建和维护具有大型数据模型的应用程序变得容易,并坚持以下原则:

    • 轻松地将数据库模式建模为图形结构。
    • 将模式定义为可编程的Go代码。
    • 基于代码生成的静态类型。
    • 数据库查询和图遍历很容易编写。
    • 简单地扩展和使用Go模板自定义。

    User 添加 name、age 两个数据库字段:

    1. package schema
    2. import (
    3. "entgo.io/ent"
    4. "entgo.io/ent/schema/field"
    5. )
    6. // Fields of the User.
    7. func (User) Fields() []ent.Field {
    8. return []ent.Field{
    9. field.Int("age").
    10. field.String("name").
    11. Default("unknown"),
    12. }
    13. }

    首先,创建一个新的ent.Client。对于本例,我们将使用SQLite3。

    1. package main
    2. import (
    3. "context"
    4. "log"
    5. "<project>/ent"
    6. _ "github.com/mattn/go-sqlite3"
    7. func main() {
    8. client, err := ent.Open("sqlite3", "file:ent?mode=memory&cache=shared&_fk=1")
    9. if err != nil {
    10. log.Fatalf("failed opening connection to sqlite: %v", err)
    11. }
    12. defer client.Close()
    13. // Run the auto migration tool.
    14. if err := client.Schema.Create(context.Background()); err != nil {
    15. log.Fatalf("failed creating schema resources: %v", err)
    16. }
    17. }