0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

圧倒的初心者によるentの初期設定

Posted at

entの初期設定

筆者のレベル

最近Web開発の勉強を始めてHTML,CSS,JavaScriptの基礎が分かる程度。

プロジェクトに導入

# 作りたいテーブルごとにスキーマを作成
$ go run -mod=mod entgo.io/ent/cmd/ent new <スキーマ名>

上記のコマンドを実行することで、プロジェクトフォルダにentがインストールされ、entのフォルダが追加される。

スキーマにフィールドを追加

各スキーマごとに作られたent/schema/<スキーマ名>.goを編集してfieldを追加する。fieldの作成は公式ドキュメントを参考にしてください。

スキーマを設定し終わったら下記のコマンドを実行

$ go generate ./ent

上記のコマンドを実行すると下記のようなフォルダ構成がentフォルダの下に作られる

ent
├── client.go
├── config.go
├── context.go
├── ent.go
├── generate.go
├── mutation.go
... truncated
├── schema
│   └── user.go # このスキーマを作成
├── tx.go
├── user
│   ├── user.go
│   └── where.go
├── user.go
├── user_create.go
├── user_delete.go
├── user_query.go
└── user_update.go

上記はent/schema/user.goのスキーマを作成した後にコマンドを実行した例。

dbサーバとの接続

Postgresとの接続

Postgres以外のdbの接続は以下の公式ドキュメントを参考にしてください

import (
    ~
    ~
    ~
    "project_folder/ent" #プロジェクトにあるentフォルダ
    _ "github.com/lib/pq" #postgresのドライバ
)

func main(){
    #APIサーバとdbサーバを接続(設定は各自のyamlファイルなどに記載してあるものを記述)
    client, err := ent.Open("postgres","host=<host> port=<port> user=<user> dbname=<database> password=<pass>")

    #先ほど作成したSchemaをPostgresのテーブルに移行(テーブルを作成)
    if err := client.Schema.Create(context.Background()); err != nil {
        log.Fatalf("failed creating schema resources: %v", err)
    }
}

テーブルに対しての操作は公式ドキュメントを参考にしてください。(真ん中の方にあります)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?