はじめに
株式会社 RetailAI X Advent Calendar 2022 6日目の記事です。
最近、Go言語のORMであるentを触っています
自分が書いたプログラムがイメージ通りのSQLを発行できているのか確認したい時があったので、やり方を調べてみました
データ取得処理
通常時
client.User.Query().All(ctx)
clientの中身はこんな感じに作ります
SQLを確認したいとき
client.Debug().User.Query().All(ctx)
clientに対してDebug()
を実行すると、新しいデバッグクライアントが返却され特定の操作に対して詳細なログを取得することができます
2022/12/03 01:34:58 driver.Query: query=SELECT DISTINCT "users"."id", "users"."name", "users"."email", "users"."password", "users"."created_at", "users"."updated_at" FROM "users" args=[]
上記のプログラムを実行すると、SQLがログに出力されて、実行時のパラメータがある場合はargsに中身が表示されます
参考
https://entgo.io/ja/docs/migrate/#%E3%83%AA%E3%82%BD%E3%83%BC%E3%82%B9%E3%81%AE%E5%89%8A%E9%99%A4
https://pkg.go.dev/entgo.io/ent/examples/o2mrecur/ent#Client.Debug
最後に
明日7日目の記事は、@tanabe_shogoさんのNode.jsを使って、BigQueryからデータを取得するWebAPIを作るです!
お楽しみください!