Configuración inicial
Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →
Esta guía está dirigida a usuarios primerizos que necesiten instrucciones para configurar un proyecto de Ent desde cero. Antes de comenzar, asegúrate de tener instalados los siguientes requisitos previos en tu equipo.
Requisitos previos
Tras instalar estas dependencias, crea un directorio para el proyecto e inicializa un módulo de Go:
mkdir todo
cd $_
go mod init todo
Instalación
Ejecuta los siguientes comandos de Go para instalar Ent e indicarle que inicialice la estructura del proyecto junto con un esquema Todo.
go get entgo.io/ent/cmd/ent
go run -mod=mod entgo.io/ent/cmd/ent new Todo
Tras instalar Ent y ejecutar ent new, la estructura de directorios de tu proyecto debería verse así:
.
├── ent
│ ├── generate.go
│ └── schema
│ └── todo.go
├── go.mod
└── go.sum
El directorio ent contiene los recursos generados (ver siguiente sección), mientras que ent/schema aloja tus
esquemas de entidades.
Generación de código
Al ejecutar ent new Todo anteriormente, se creó un esquema llamado Todo en el archivo todo.go dentro del directorio todo/ent/schema/:
package schema
import "entgo.io/ent"
// Todo holds the schema definition for the Todo entity.
type Todo struct {
ent.Schema
}
// Fields of the Todo.
func (Todo) Fields() []ent.Field {
return nil
}
// Edges of the Todo.
func (Todo) Edges() []ent.Edge {
return nil
}
Como ves, inicialmente el esquema no tiene campos ni relaciones definidos. Ejecutemos el comando para generar los recursos necesarios para interactuar
con la entidad Todo:
go generate ./ent
Crear un caso de prueba
Ejecutar go generate ./ent activa la herramienta de generación automática de código de Ent, que utiliza los esquemas definidos en nuestro paquete schema para producir el código Go real que usaremos para interactuar con la base de datos. En este punto, encontrarás en ./ent/client.go un cliente capaz de consultar y modificar entidades Todo. Creemos un
ejemplo comprobable para utilizarlo. Emplearemos SQLite
en este caso de prueba para evaluar Ent.
go get github.com/mattn/go-sqlite3
touch example_test.go
Pega el siguiente código en example_test.go para instanciar un ent.Client que creará automáticamente todos los recursos del esquema
en la base de datos (tablas, columnas, etc.).
package todo
import (
"context"
"log"
"todo/ent"
"entgo.io/ent/dialect"
_ "github.com/mattn/go-sqlite3"
)
func Example_Todo() {
// Create an ent.Client with in-memory SQLite database.
client, err := ent.Open(dialect.SQLite, "file:ent?mode=memory&cache=shared&_fk=1")
if err != nil {
log.Fatalf("failed opening connection to sqlite: %v", err)
}
defer client.Close()
ctx := context.Background()
// Run the automatic migration tool to create all schema resources.
if err := client.Schema.Create(ctx); err != nil {
log.Fatalf("failed creating schema resources: %v", err)
}
// Output:
}
Luego ejecuta go test para verificar que todo funciona correctamente.
go test
Con la configuración del proyecto completada, estamos listos para crear nuestra lista de tareas.