简介
#
安装本项目有一个叫做 ent
的代码工具。 若要安装 ent
运行以下命令:
#
初始化一个新的 Schema为了生成一个或多个 schema 模板,运行 ent init
如下:
init
将在 ent/schema
目录下创建 2个 schemas (user.go
和 pet.go
)。 如果 ent
目录不存在,将自动创建。 一般约定将 ent
目录放在项目的根目录下。
#
生成资源文件每次添加或修改 fields 和 edges后, 你都需要生成新的实体. 在项目的根目录执行 ent generate
或直接执行go generate
命令重新生成资源文件:
generate
将会按照schema模板生成生成以下资源:
Client
和Tx
对象用于与图的交互。- 每个schema对应的增删改查, 查看 CRUD 了解更多信息。
- 每个schema的实体对象(Go结构体)。
- 含常量和查询条件的包,用于与生成器交互。
- 用于数据迁移的
migrate
包。 查看 迁移 获取更多信息。
entc
和ent
之间的版本兼容性#
在项目中使用 ent
CLI时,需要确保CLI使用的版本与项目使用的 ent
版本相同。
保证此的一个方法是通过 go generate
来使用 go.mod
内所定义的 ent
CLI版本。 如果您的项目没有使用 Go modules, 请设置一个:
然后执行以下命令,以便将 ent
添加到您的 go.mod
文件:
将 generate.go
文件添加到你项目的<project>/ent
目录中:
最后,你可以执行 go generate ./ent
,以便在您的项目方案中执行 ent
代码生成。
#
代码生成选项关于代码生成选项的更多信息,执行 ent generate -h
:
#
Storage选项ent
可以为 SQL 和 Gremlin 生成资源。 默认是 SQL
#
外部模板ent
接受执行外部 Go 模板文件。 如果模板名称已由 ent
定义,它将覆盖现有的模板。 否则,它将把执行后的输出写入到 与模板相同名称的文件。 支持参数 file
, dir
和 glob
如下所示:
更多信息和示例可在 外部模板 中找到。
entc
#
使用 运行 ent
CLI 的另一个选项是将其作为一个包,如下所示:
完整示例请参阅 GitHub.
#
Schema描述要获取您Schema的描述,请执行:
示例如下:
#
代码生成Hooks (钩子)entc
软件包提供了一个将钩子(中间件) 添加到代码生成阶段的方法。 这个方法适合在你需要对graph schema进行自定义验证或者生成附加资源时使用.
#
命令参数entc
软件包提供了一系列代码生成特性,可以自行选择使用。
欲了解更多信息,请查看 功能特性开关。