Esta página fue traducida por PageTurner AI (beta). No está respaldada oficialmente por el proyecto. ¿Encontraste un error? Reportar problema →
Migrar a un nuevo ORM no es un proceso sencillo, y el coste de transición puede ser prohibitivo para muchas organizaciones. Por mucho que a los desarrolladores nos cautiven las "novedades relucientes", la realidad es que rara vez tenemos la oportunidad de trabajar en un proyecto realmente "desde cero". Durante la mayor parte de nuestras carreras, operamos en contextos donde múltiples limitaciones técnicas y de negocio (también conocidas como sistemas heredados) dictan y restringen nuestras opciones para avanzar. Las tecnologías emergentes que quieran triunfar deben ofrecer capacidades de interoperabilidad y vías de integración que ayuden a las organizaciones a transitar sin problemas hacia nuevas formas de resolver problemas existentes.
Para ayudar a reducir el coste de migrar a Ent (o simplemente experimentar con él), hemos lanzado la "Schema Import Initiative" para respaldar numerosos casos de uso de generación de esquemas de Ent desde recursos externos. La pieza central de este esfuerzo es el paquete schemast (código fuente, documentación), que permite a los desarrolladores crear fácilmente programas que generen y manipulen esquemas de Ent. Con este paquete, los desarrolladores pueden programar usando una API de alto nivel, liberándoles de preocuparse por el análisis de código y las manipulaciones de AST.
Compatibilidad con importación de Protobuf
El primer proyecto en usar esta nueva API es protoc-gen-ent, un plugin de protoc para generar esquemas de Ent desde archivos .proto (documentación). Las organizaciones que ya tienen esquemas definidos en Protobuf pueden usar esta herramienta para generar automáticamente código de Ent. Por ejemplo, tomando una definición de mensaje sencilla:
syntax = "proto3";
package entpb;
option go_package = "github.com/yourorg/project/ent/proto/entpb";
message User {
string name = 1;
string email_address = 2;
}
Y estableciendo la opción ent.schema.gen a true:
syntax = "proto3";
package entpb;
+import "options/opts.proto";
option go_package = "github.com/yourorg/project/ent/proto/entpb";
message User {
+ option (ent.schema).gen = true; // <-- tell protoc-gen-ent you want to generate a schema from this message
string name = 1;
string email_address = 2;
}
Los desarrolladores pueden invocar el comando estándar protoc (compilador de protobuf) para usar este plugin:
protoc -I=proto/ --ent_out=. --ent_opt=schemadir=./schema proto/entpb/user.proto
Para generar esquemas de Ent a partir de estas definiciones:
package schema
import (
"entgo.io/ent"
"entgo.io/ent/schema/field"
)
type User struct {
ent.Schema
}
func (User) Fields() []ent.Field {
return []ent.Field{field.String("name"), field.String("email_address")}
}
func (User) Edges() []ent.Edge {
return nil
}
¡Para empezar a usar protoc-gen-ent hoy mismo y conocer todas las opciones de configuración disponibles, visita la documentación!
Únete a la Schema Import Initiative
¿Tienes esquemas definidos en otros lugares que te gustaría importar automáticamente a Ent? Con el paquete schemast, es más fácil que nunca crear la herramienta que necesitas para hacerlo. ¿No sabes por dónde empezar? ¿Quieres colaborar con la comunidad para planificar y desarrollar tu idea? ¡Contáctanos a través de nuestro servidor de Discord, canal de Slack o inicia un debate en GitHub!
- Suscríbete a nuestro Newsletter
- Síguenos en Twitter
- Únete a #ent en Gophers Slack
- Únete al Servidor de Discord de Ent