フィールド名の変更

フィールド名の変更

構造体フィールド名は、列名から簡単なアルゴリズムを使用して生成されます:列名をアンダースコアで分割し、各部分の最初の文字を大文字にします。

account     -> Account
spotify_url -> SpotifyUrl
app_id      -> AppID

生成されたフィールド名に満足しない場合は、renameマッピングを使用して新しい名前を選択します。キーは列名で、値は使用する構造体フィールド名です。

version: "2"
sql:
- schema: "postgresql/schema.sql"
  queries: "postgresql/query.sql"
  engine: "postgresql"
  gen:
    go: 
      package: "authors"
      out: "postgresql"
      rename:
        spotify_url: "SpotifyURL"

テーブル

テーブルに関連する出力構造体も名前を変更できます。デフォルトでは、構造体名はテーブル名の単数形バージョンになります。例えば、authorsテーブルはAuthor構造体を生成します。

CREATE TABLE authors (
  id   BIGSERIAL PRIMARY KEY,
  name text      NOT NULL,
  bio  text
);
package db

import (
	"database/sql"
)

type Author struct {
	ID   int64
	Name string
	Bio  sql.NullString
}

この構造体の名前を変更するには、生成された構造体名を使用する必要があります。この例では、それはauthorになります。renameマップを使用してこの構造体の名前をWriterに変更します(大文字のWに注意)。

バージョン1:

version: '1'
packages:
- path: db
  engine: postgresql
  schema: query.sql
  queries: query.sql
rename:
  author: Writer

バージョン2:

version: "2"
sql:
  - engine: postgresql
    queries: query.sql
    schema: query.sql
overrides:
  go:
    rename:
      author: Writer
package db

import (
	"database/sql"
)

type Writer struct {
	ID   int64
	Name string
	Bio  sql.NullString
}

制限事項

Renameマッピングはパッケージ全体に適用されます。したがって、fooという名前の列とfooというテーブル名は、異なるrename値にマップできません。


原文:https://docs.sqlc.dev/en/latest/howto/rename.html