大瀧
2024.01.04
423
この記事では、Go言語のフレームワークであるentにコマンド一つでスキーマファイルからER図を生成してくれるツールが追加されたことについて紹介します。
Entのスキーマファイルを元に生成したER図のリンクは以下のコマンドで作成できます。
$ go run -mod=mod ariga.io/entviz ./path/to/ent/schema
go mod init で確認用プロジェクトを初期化します。
$ go mod init github.com/rotemtam/ent-blog-example
新しいプロジェクトが作成されたことを確認します。
go: creating new go.mod: module github.com/rotemtam/ent-blog-example
Entを使用してアプリケーション・データ・モデルを作成するため、go get を使って取得しましょう。
$ go get -u entgo.io/ent@master
Ent CLI を使用して、このチュートリアルで扱う2種類のエンティティ(UserとPost)のモデルを初期化します。
$ go run -mod=mod entgo.io/ent/cmd/ent new User Post
./ent/schema 配下にあるpost.go と user.go にそれぞれ以下を追記します。
user.go
// Fields of the User.
func (User) Fields() []ent.Field {
return []ent.Field{
field.String("name"),
field.String("email").
Unique(),
field.Time("created_at").
Default(time.Now),
}
}
// Edges of the User.
func (User) Edges() []ent.Edge {
return []ent.Edge{
edge.To("posts", Post.Type),
}
}
post.go
// Fields of the Post.
func (Post) Fields() []ent.Field {
return []ent.Field{
field.String("title"),
field.Text("body"),
field.Time("created_at").
Default(time.Now),
}
}
// Edges of the Post.
func (Post) Edges() []ent.Edge {
return []ent.Edge{
edge.From("author", User.Type).
Unique().
Ref("posts"),
}
}
以下のコマンドを実行し、ER図のリンクを生成してブラウザで確認します。
$ go run -mod=mod ariga.io/entviz ./ent/schema
以下のようなページが開ければ完了です。
schemaファイルさえ書いていればコマンド一つでER図が生成できるので非常に便利な機能でした。
Entはコンスタントにこういった便利な機能のアップデートが行われているので、これからも定期的にリリースノートをチェックして追っていきたいと思います。
2,335
大瀧
2024.02.10
461
タム
2023.05.26