跳到主要内容

快速可视化你的 Ent 架构与 entviz

· 阅读需 4 分钟

TL;DR

要获取你 Ent 架构可视化的公开链接,请运行:

go run -mod=mod ariga.io/entviz ./path/to/ent/schema 

Visualizing Ent schemas

Ent 让开发者可以使用 图论语义 来构建复杂的应用数据模型:不需要定义表、列、关联表和外键,Ent 模型仅通过 NodesEdges 来描述。

package schema

import (
"entgo.io/ent"
"entgo.io/ent/schema/edge"
)

// User schema.
type User struct {
ent.Schema
}

// Fields of the user.
func (User) Fields() []ent.Field {
return []ent.Field{
// ...
}
}

// Edges of the user.
func (User) Edges() []ent.Edge {
return []ent.Edge{
edge.To("pets", Pet.Type),
}
}

以这种方式建模有诸多优点,例如可以轻松地在直观的 API 中 遍历 应用的数据图谱,自动生成 GraphQL 服务器等。

虽然 Ent 可以把图数据库作为其存储层,但大多数 Ent 用户仍使用 MySQL、PostgreSQL 或 MariaDB 等常见关系型数据库来存放应用数据。在这些场景中,开发者往往会思考:“Ent 从我的应用架构实际会创建什么数据库模式?”

无论你是刚开始学习 Ent 架构的新手,还是正在优化生成的数据库模式以提升性能的专家,能够轻松可视化 Ent 架构映射到的数据库模式都非常有价值。

Introducing the new entviz

一年半前,我们 分享了名为 entviz 的 Ent 插件,该插件允许用户生成包含实体关系图的本地 HTML 文档,以描述应用的 Ent 架构。

今天,我们很高兴分享同名的全新工具——由 Pedro Henrique (crossworth) 创建的 super cool tool。使用(新)entviz,只需执行一条简单的 Go 命令:

go run -mod=mod ariga.io/entviz ./path/to/ent/schema 

工具会分析你的 Ent 架构,并在 Atlas Playground 上生成可视化图谱,随后为你创建一个可分享的公开 link

Here is a public link to your schema visualization:
https://gh.atlasgo.cloud/explore/saved/60129542154

在该链接中,你可以将你的架构以 ERD 形式直观查看,亦可以 SQL 或 Atlas HCL 文档形式查看。

Wrapping up

在本篇博客中,我们讨论了一些你可能会发现快速获取 Ent 应用架构可视化很有用的场景,然后演示了如何使用 entviz 创建这些可视化图谱。如果你喜欢这个想法,欢迎今天就尝试并给我们反馈!

更多 Ent 新闻和更新:
  • 订阅我们的 [Newsletter]
  • [Twitter] 上关注我们
  • 在 #ent 的 [Gophers Slack] 加入我们
  • [Ent Discord Server] 加入我们