Skip to main content

CRUD API

As mentioned in the introduction section, running ent on the schemas, will generate the following assets:

  • Client and Tx objects used for interacting with the graph.
  • CRUD builders for each schema type.
  • Entity object (Go struct) for each of the schema type.
  • Package containing constants and predicates used for interacting with the builders.
  • A migrate package for SQL dialects. See Migration for more info.

Create A New Client​

package main

import (
"context"
"log"

"entdemo/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)
}
}

Create An Entity​

Save a user.

a8m, err := client.User.    // UserClient.
Create(). // User create builder.
SetName("a8m"). // Set field value.
SetNillableAge(age). // Avoid nil checks.