Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // Templates 保存database将要生成的文件的模版信息 Templates = []InstanceTemplate{ { Name: "database", Format: pkgf("%s.go"), }, { Name: "sql/table", Format: pkgf("sql/%s_table.sql"), }, } EntityTemplates = []InstanceTemplate{ { Name: "entity/builder", Format: pkgf("%s/builder.go"), }, { Name: "entity/entity", Format: pkgf("%s/entity.go"), }, { Name: "entity/meta", Format: func(t template.TemplatePathFormat) string { return fmt.Sprintf("%[1]s/%[1]s.go", t.Dir()) }, }, { Name: "entity/fields", Format: pkgf("%s/fields.go"), }, { Name: "entity/create", Format: pkgf("%s/create.go"), }, { Name: "entity/delete", Format: pkgf("%s/delete.go"), }, { Name: "entity/query", Format: pkgf("%s/query.go"), }, { Name: "entity/update", Format: pkgf("%s/update.go"), }, { Name: "entity/where", Format: pkgf("%s/where.go"), }, } InstanceTemplates = []GenericTemplate{ { Name: "internal/core", Format: "internal/core.go", }, } SqlTemplates = []GenericTemplate{} )
Functions ¶
func PrepareEnv ¶
PrepareEnv 检查是否有runtime.go,如果存在检查导入部分,避免循环导入
Types ¶
type Builder ¶
type Builder struct { *Config // Databases 包含了从entity package中加载的所有database。 Databases []*load.Database // Nodes是Schema中的database info的集合。 Nodes []*Info }
func NewBuilder ¶
NewBuilder 根据提供的Entity信息,生成数据库的表。
参数:
- c: 代码生成的配置。
- entities: 从entity package中加载的所有entity。
type Config ¶
type Config struct { // 保存生成的代码的目标路径。 // // 默认情况下,代码生成器将生成代码到和Package上一级目录。 // 例如,"tentity generate ./entity/schema",则生成的代码将放在"./entity"目录下。 Target string BuildFlags []string // Package 定义了上面的Target目录下,Go package的路径,比如“package gen”,则 // Package为"gen" // // "tentity generate <project>/entity" 或者在项目根目录下 "tentity generate ./entity", // 然后会获得执行路径下文件的Go package作为Package Package string // Header 它允许用户为生成的文件提供一个可选的头部签名。 // 默认情况下,这个头部签名遵循标准的 'go generate' 格式, // 即 '// Code generated by ent, DO NOT EDIT.' Header string // 可选的hook列表,用于代码生成前、后在表上执行 Hooks []Hook // 指定代码生成中id字段的类型 // 默认情况下,id字段的类型是int或者string IDType *field.TypeInfo // 外部传入的template Templates []*template.Template }
代码生成的全局配置,并在所有生成的节点之间共享
type EntityInfo ¶
func NewEntityInfo ¶
func NewEntityInfo(c *Config, entity *load.Entity) (*EntityInfo, error)
type GenerateFunc ¶
func (GenerateFunc) Generate ¶
func (f GenerateFunc) Generate(t *Builder) error
type GenericTemplate ¶
GenericTemplate 是生成代码中给每个InstanceTemplate使用的通用部分
type InstanceTemplate ¶
type InstanceTemplate = template.FileTemplate[any]
InstanceTemplate 根据数据库结构生成一个模版
Click to show internal directories.
Click to hide internal directories.