SQLからtype-safeな関数を生成するツール https://github.com/sqlc-dev/sqlc

goの他にkotlin, ts, pythonも使えるらしい。

設定

yamlで書く

version: "2"
sql:
  - engine: "postgresql"
    queries: "db/query.sql"
    schema: "db/schema.sql"
    gen:
      go:
        package: "driver"
        out: "internal/driver"
        sql_package: "pgx/v5"

SQLにはコメントで生成する関数情報をアノテーションする

-- name: GetDatasets :many
SELECT id, name FROM datasets;