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