設定
sqlcツールはsqlc.(yaml|yml)またはsqlc.jsonファイルで設定されます。このファイルはsqlcコマンドを実行するディレクトリに配置する必要があります。
バージョン2
version: "2"
cloud:
project: "<PROJECT_ID>"
sql:
- schema: "postgresql/schema.sql"
queries: "postgresql/query.sql"
engine: "postgresql"
gen:
go:
package: "authors"
out: "postgresql"
database:
managed: true
rules:
- sqlc/db-prepare
- schema: "mysql/schema.sql"
queries: "mysql/query.sql"
engine: "mysql"
gen:
go:
package: "authors"
out: "mysql"sql
sqlコレクションの各マッピングには以下のキーがあります:
name:- このクエリセットの人にやさしい識別子。オプション。
engine:postgresql、mysql、sqliteのいずれか。
schema:- SQLマイグレーションのディレクトリまたは単一のSQLファイルへのパス、またはパスのリスト。
queries:- SQLクエリのディレクトリまたは単一のSQLファイルへのパス、またはパスのリスト。
codegen:- コードジェネレーターを設定するマッピングのコレクション。サポートされるキーについてはcodegenを参照。
gen:- 組み込みコードジェネレーターを設定するマッピング。サポートされるキーについてはgenを参照。
database:- データベース接続を設定するマッピング。サポートされるキーについてはdatabaseを参照。
rules:sqlc vetで実行するルール名のコレクション。設定オプションについてはrulesを参照。
analyzer:- クエリ分析を設定するマッピング。サポートされるキーについてはanalyzerを参照。
strict_function_checks- trueの場合、呼び出されたSQL関数が存在しない場合にエラーを返します。デフォルトは
false。
- trueの場合、呼び出されたSQL関数が存在しない場合にエラーを返します。デフォルトは
strict_order_by- trueの場合、order by列があいまいな場合にエラーを返します。デフォルトは
true。
- trueの場合、order by列があいまいな場合にエラーを返します。デフォルトは
codegen
codegenマッピングは以下のキーをサポートしています:
out:- 生成されたコードの出力ディレクトリ。
plugin:- プラグインの名前。
pluginsコレクションで定義されている必要があります。
- プラグインの名前。
options:- プラグイン固有のオプションのマッピング。
version: '2'
plugins:
- name: py
wasm:
url: https://github.com/sqlc-dev/sqlc-gen-python/releases/download/v0.16.0-alpha/sqlc-gen-python.wasm
sha256: 428476c7408fd4c032da4ec74e8a7344f4fa75e0f98a5a3302f238283b9b95f2
sql:
- schema: "schema.sql"
queries: "query.sql"
engine: postgresql
codegen:
- out: src/authors
plugin: py
options:
package: authors
emit_sync_querier: true
emit_async_querier: true
query_parameter_limit: 5database
databaseマッピングは以下のキーをサポートしています:
managed:- trueの場合、管理データベースに接続します。デフォルトは
false。
- trueの場合、管理データベースに接続します。デフォルトは
uri:- データベース接続URI
uri文字列は${...}構文を使用して環境変数への参照を含めることができます。以下の例では、接続文字列にPG_PASSWORD環境変数の値がパスワードとして設定されます。
version: '2'
sql:
- schema: schema.sql
queries: query.sql
engine: postgresql
database:
uri: postgresql://postgres:${PG_PASSWORD}@localhost:5432/authors
gen:
go:
package: authors
out: postgresqlanalyzer
analyzerマッピングは以下のキーをサポートしています:
database:- falseの場合、クエリ分析に設定されたデータベースを使用しません。デフォルトは
true。
- falseの場合、クエリ分析に設定されたデータベースを使用しません。デフォルトは
gen
genマッピングは以下のキーをサポートしています:
go
package:- 生成されたコードに使用するパッケージ名。デフォルトは
outのベース名。
- 生成されたコードに使用するパッケージ名。デフォルトは
out:- 生成されたコードの出力ディレクトリ。
sql_package:pgx/v4、pgx/v5、database/sqlのいずれか。デフォルトはdatabase/sql。
sql_driver:github.com/jackc/pgx/v4、github.com/jackc/pgx/v5、github.com/lib/pq、github.com/go-sql-driver/mysqlのいずれか。デフォルトなし。クエリアノテーション:copyfromが使用される場合は必須。
emit_db_tags:- trueの場合、生成された構造体にDBタグを追加します。デフォルトは
false。
- trueの場合、生成された構造体にDBタグを追加します。デフォルトは
emit_prepared_queries:- trueの場合、プリペアドクエリのサポートを含めます。デフォルトは
false。
- trueの場合、プリペアドクエリのサポートを含めます。デフォルトは
emit_interface:- trueの場合、生成されたパッケージに
Querierインターフェースを出力します。デフォルトはfalse。
- trueの場合、生成されたパッケージに
emit_exact_table_names:- trueの場合、構造体名はテーブル名をミラーします。そうでなければ、sqlcは複数形のテーブル名を単数形にしようとします。デフォルトは
false。
- trueの場合、構造体名はテーブル名をミラーします。そうでなければ、sqlcは複数形のテーブル名を単数形にしようとします。デフォルトは
emit_empty_slices:- trueの場合、
:manyクエリによって返されるスライスはnilの代わりに空になります。デフォルトはfalse。
- trueの場合、
emit_exported_queries:- trueの場合、自動生成されたSQL文を他のパッケージからアクセスできるようにエクスポートできます。
emit_json_tags:- trueの場合、生成された構造体にJSONタグを追加します。デフォルトは
false。
- trueの場合、生成された構造体にJSONタグを追加します。デフォルトは
emit_result_struct_pointers:- trueの場合、クエリ結果は構造体へのポインターとして返されます。複数の結果を返すクエリは、ポインターのスライスとして返されます。デフォルトは
false。
- trueの場合、クエリ結果は構造体へのポインターとして返されます。複数の結果を返すクエリは、ポインターのスライスとして返されます。デフォルトは
emit_params_struct_pointers:- trueの場合、パラメーターは構造体へのポインターとして渡されます。デフォルトは
false。
- trueの場合、パラメーターは構造体へのポインターとして渡されます。デフォルトは
emit_methods_with_db_argument:- trueの場合、生成されたメソッドは
*Queries構造体にDBTXを格納する代わりにDBTX引数を受け入れます。デフォルトはfalse。
- trueの場合、生成されたメソッドは
emit_pointers_for_null_types:- trueの場合、null許可列の生成された型は
database/sqlのnull型(例:NullString)の代わりにポインター(例:*string)として出力されます。現在、sql_packageがpgx/v4またはpgx/v5の場合のPostgreSQLとSQLiteでのみサポートされています。デフォルトはfalse。
- trueの場合、null許可列の生成された型は
emit_enum_valid_method:- trueの場合、文字列が有効な列挙値かどうかを示すenum型でValidメソッドを生成します。
emit_all_enum_values:- trueの場合、すべての有効な列挙値を返すenum型ごとの関数を出力します。
emit_sql_as_comment:- trueの場合、生成された関数の上にSQL文をコードブロックコメントとして出力し、既存のコメントに追加します。デフォルトは
false。
- trueの場合、生成された関数の上にSQL文をコードブロックコメントとして出力し、既存のコメントに追加します。デフォルトは
build_tags:- 設定されている場合、生成されたGoファイルの先頭に
//go:build <build_tags>ディレクティブを追加します。
- 設定されている場合、生成されたGoファイルの先頭に
initialisms:- 大文字にする頭字語の配列。例えば、
app_idはAppIDになります。デフォルトは["id"]。
- 大文字にする頭字語の配列。例えば、
json_tags_id_uppercase:- trueの場合、jsonタグの"Id"は大文字になります。falseの場合、キャメルケースになります。デフォルトは
false。
- trueの場合、jsonタグの"Id"は大文字になります。falseの場合、キャメルケースになります。デフォルトは
json_tags_case_style:- キャメルケースの場合は
camel、パスカルケースの場合はpascal、スネークケースの場合はsnake、DBの列名を使用する場合はnone。デフォルトはnone。
- キャメルケースの場合は
omit_unused_structs:trueの場合、sqlcは特定のパッケージのクエリで使用されていないテーブルと列挙構造体を生成しません。デフォルトはfalse。
output_batch_file_name:- バッチファイルの名前をカスタマイズします。デフォルトは
batch.go。
- バッチファイルの名前をカスタマイズします。デフォルトは
output_db_file_name:- dbファイルの名前をカスタマイズします。デフォルトは
db.go。
- dbファイルの名前をカスタマイズします。デフォルトは
output_models_file_name:- modelsファイルの名前をカスタマイズします。デフォルトは
models.go。
- modelsファイルの名前をカスタマイズします。デフォルトは
output_querier_file_name:- querierファイルの名前をカスタマイズします。デフォルトは
querier.go。
- querierファイルの名前をカスタマイズします。デフォルトは
output_copyfrom_file_name:- copyfromファイルの名前をカスタマイズします。デフォルトは
copyfrom.go。
- copyfromファイルの名前をカスタマイズします。デフォルトは
output_files_suffix:- 指定されている場合、生成されたファイルの名前にサフィックスが追加されます。
query_parameter_limit:- Go関数に生成される位置引数の数。常にパラメーター構造体を出力するには、これを
0に設定します。デフォルトは1。
- Go関数に生成される位置引数の数。常にパラメーター構造体を出力するには、これを
rename:- 生成された構造体フィールドの名前をカスタマイズします。使用方法については「フィールド名の変更」を参照。
overrides:- データベース型のマッピングに使用される型を決定する定義のコレクション。
overrides
型のオーバーライドの使用に関する詳細なガイドについては「型のオーバーライド」を参照してください。overridesコレクションの各マッピングには以下のキーがあります:
db_type:- オーバーライドするPostgreSQLまたはMySQL型。サポートされる型の完全なリストは、postgresql_type.goまたはmysql_type.goで確認できます。Postgresの場合、利用可能な場合はpg_catalogプレフィックス付きの名前を使用する必要があります。
columnキーが定義されている場合は使用できません。
- オーバーライドするPostgreSQLまたはMySQL型。サポートされる型の完全なリストは、postgresql_type.goまたはmysql_type.goで確認できます。Postgresの場合、利用可能な場合はpg_catalogプレフィックス付きの名前を使用する必要があります。
column:- 型のオーバーライドが型ではなくテーブルの特定の列に対して行われる場合。
columnはtable.columnの形式である必要がありますが、schema.table.columnまたはcatalog.schema.table.columnを指定してより具体的にすることもできます。db_typeキーが定義されている場合は使用できません。
- 型のオーバーライドが型ではなくテーブルの特定の列に対して行われる場合。
go_type:- 生成されたコードで使用するGo型の完全修飾名。
go_struct_tag:- 生成されたコードで使用するreflectスタイルの構造体タグ。例:
a:"b" x:"y,z"。すべてのフィールドに一般的なjson/dbタグが必要な場合は、代わりにemit_db_tagsおよび/またはemit_json_tagsを使用してください。
- 生成されたコードで使用するreflectスタイルの構造体タグ。例:
nullable:trueの場合、列がnull許可の場合にこの型を使用します。デフォルトはfalse。
より複雑なimportパスの場合、go_typeは以下のキーを持つオブジェクトにすることもできます:
import:- 型が定義されているパッケージのimportパス。
package:- 型が定義されているパッケージ名。これは、importパスが希望するパッケージ名で終わらない場合にのみ必要です。
type:- パッケージプレフィックスなしの型名自体。
pointer:trueに設定されている場合、生成されたコードは型自体ではなく型へのポインターを使用します。
slice:trueに設定されている場合、生成されたコードは型自体ではなく型のスライスを使用します。
kotlin
v1.17.0で削除され、sqlc-gen-kotlinプラグインに置き換えられました。切り替えるには移行ガイドに従ってください。
package:- 生成されたコードに使用するパッケージ名。
out:- 生成されたコードの出力ディレクトリ。
emit_exact_table_names:- trueの場合、生成されたモデルに正確なテーブル名を使用します。そうでなければ、単数形を推測します。デフォルトは
false。
- trueの場合、生成されたモデルに正確なテーブル名を使用します。そうでなければ、単数形を推測します。デフォルトは
python
v1.17.0で削除され、sqlc-gen-pythonプラグインに置き換えられました。切り替えるには移行ガイドに従ってください。
package:- 生成されたコードに使用するパッケージ名。
out:- 生成されたコードの出力ディレクトリ。
emit_exact_table_names:- trueの場合、生成されたモデルに正確なテーブル名を使用します。そうでなければ、単数形を推測します。デフォルトは
false。
- trueの場合、生成されたモデルに正確なテーブル名を使用します。そうでなければ、単数形を推測します。デフォルトは
emit_sync_querier:- trueの場合、同期メソッドを持つクラスを生成します。デフォルトは
false。
- trueの場合、同期メソッドを持つクラスを生成します。デフォルトは
emit_async_querier:- trueの場合、非同期メソッドを持つクラスを生成します。デフォルトは
false。
- trueの場合、非同期メソッドを持つクラスを生成します。デフォルトは
emit_pydantic_models:- trueの場合、
pydantic.BaseModelから継承するクラスを生成します。そうでなければ、dataclassデコレータを使用してクラスを定義します。デフォルトはfalse。
- trueの場合、
json
out:- 生成されたJSONの出力ディレクトリ。
filename:- 生成されたJSONドキュメントのファイル名。デフォルトは
codegen_request.json。
- 生成されたJSONドキュメントのファイル名。デフォルトは
indent:- JSONドキュメントで使用するインデント文字列。デフォルトは``。
plugins
pluginsコレクションの各マッピングには以下のキーがあります:
name:- このプラグインの名前。必須。
env- プラグインに渡す環境変数のリスト。デフォルトでは、環境変数は渡されません。
process: 単一のcmdキーを持つマッピングcmd:- このプラグインを使用する際に呼び出す実行可能ファイル
format:- 期待される形式。
jsonとprotobuf形式をサポートします。デフォルトはprotobuf。
- 期待される形式。
wasm:urlとsha256の2つのキーを持つマッピングurl:- WASMファイルを取得するURL。
https://またはfile://スキームをサポートします。
- WASMファイルを取得するURL。
sha256- ダウンロードされたファイルのSHA256チェックサム。
version: "2"
plugins:
- name: "py"
wasm:
url: "https://github.com/sqlc-dev/sqlc-gen-python/releases/download/v0.16.0-alpha/sqlc-gen-python.wasm"
sha256: "428476c7408fd4c032da4ec74e8a7344f4fa75e0f98a5a3302f238283b9b95f2"
- name: "js"
env:
- PATH
process:
cmd: "sqlc-gen-json"rules
rulesコレクションの各マッピングには以下のキーがあります:
name:- このルールの名前。必須。
rule:- Common Expression Language(CEL)式。必須。
message:- このルールが
trueと評価される場合に表示されるオプションのメッセージ。
- このルールが
組み込みルールのリストとカスタムルールの作成ヘルプについては、vetドキュメントを参照してください。
version: "2"
sql:
- schema: "query.sql"
queries: "query.sql"
engine: "postgresql"
gen:
go:
package: "authors"
out: "db"
rules:
- no-pg
- no-delete
- only-one-param
- no-exec
rules:
- name: no-pg
message: "invalid engine: postgresql"
rule: |
config.engine == "postgresql"
- name: no-delete
message: "don't use delete statements"
rule: |
query.sql.contains("DELETE")
- name: only-one-param
message: "too many parameters"
rule: |
query.params.size() > 1
- name: no-exec
message: "don't use exec"
rule: |
query.cmd == "exec"グローバルオーバーライド
時には、コード生成のさまざまな仕様で同じ設定を行う必要があります。その場合、以下の方法でoverridesマッピングを使用して型のオーバーライドとフィールドの名前変更のグローバル定義を行うことができます:
version: "2"
overrides:
go:
rename:
id: "Identifier"
overrides:
- db_type: "timestamptz"
nullable: true
engine: "postgresql"
go_type:
import: "gopkg.in/guregu/null.v4"
package: "null"
type: "Time"
sql:
- schema: "postgresql/schema.sql"
queries: "postgresql/query.sql"
engine: "postgresql"
gen:
go:
package: "authors"
out: "postgresql"
- schema: "mysql/schema.sql"
queries: "mysql/query.sql"
engine: "mysql"
gen:
go:
package: "authors"
out: "mysql"前の設定では、idという名前のテーブル列から構造体フィールドが生成される場合、常にIdentifierとして生成されます。
また、PostgresテーブルにNULL許可のtimestamp with time zone列がある場合、常にnull.Timeとして生成されます。グローバル型オーバーライドのマッピングには、通常の型オーバーライドにはないengineフィールドがあることに注意してください。このフィールドは、複数のエンジンを使用する複数の定義がある場合にのみ使用されます。そうでなければ、engineキーの値は現在使用されているエンジンにデフォルト設定されます。
現在、グローバルと通常の両方の型のオーバーライドとフィールドの名前変更は、Goでのみ完全にサポートされています。
バージョン1
version: "1"
packages:
- name: "db"
path: "internal/db"
queries: "./sql/query/"
schema: "./sql/schema/"
engine: "postgresql"
emit_db_tags: false
emit_prepared_queries: true
emit_interface: false
emit_exact_table_names: false
emit_empty_slices: false
emit_exported_queries: false
emit_json_tags: true
emit_result_struct_pointers: false
emit_params_struct_pointers: false
emit_methods_with_db_argument: false
emit_pointers_for_null_types: false
emit_enum_valid_method: false
emit_all_enum_values: false
build_tags: "some_tag"
json_tags_case_style: "camel"
omit_unused_structs: false
output_batch_file_name: "batch.go"
output_db_file_name: "db.go"
output_models_file_name: "models.go"
output_querier_file_name: "querier.go"
output_copyfrom_file_name: "copyfrom.go"
query_parameter_limit: 1packages
packagesコレクションの各マッピングには以下のキーがあります:
name:- 生成されたコードに使用するパッケージ名。デフォルトは
pathのベース名。
- 生成されたコードに使用するパッケージ名。デフォルトは
path:- 生成されたコードの出力ディレクトリ。
queries:- SQLクエリのディレクトリまたは単一のSQLファイルへのパス、またはパスのリスト。
schema:- SQLマイグレーションのディレクトリまたは単一のSQLファイルへのパス、またはパスのリスト。
engine:postgresqlまたはmysqlのいずれか。デフォルトはpostgresql。
sql_package:pgx/v4、pgx/v5、database/sqlのいずれか。デフォルトはdatabase/sql。
emit_db_tags:- trueの場合、生成された構造体にDBタグを追加します。デフォルトは
false。
- trueの場合、生成された構造体にDBタグを追加します。デフォルトは
emit_prepared_queries:- trueの場合、プリペアドクエリのサポートを含めます。デフォルトは
false。
- trueの場合、プリペアドクエリのサポートを含めます。デフォルトは
emit_interface:- trueの場合、生成されたパッケージに
Querierインターフェースを出力します。デフォルトはfalse。
- trueの場合、生成されたパッケージに
emit_exact_table_names:- trueの場合、構造体名はテーブル名をミラーします。そうでなければ、sqlcは複数形のテーブル名を単数形にしようとします。デフォルトは
false。
- trueの場合、構造体名はテーブル名をミラーします。そうでなければ、sqlcは複数形のテーブル名を単数形にしようとします。デフォルトは
emit_empty_slices:- trueの場合、
:manyクエリによって返されるスライスはnilの代わりに空になります。デフォルトはfalse。
- trueの場合、
emit_exported_queries:- trueの場合、自動生成されたSQL文を他のパッケージからアクセスできるようにエクスポートできます。
emit_json_tags:- trueの場合、生成された構造体にJSONタグを追加します。デフォルトは
false。
- trueの場合、生成された構造体にJSONタグを追加します。デフォルトは
emit_result_struct_pointers:- trueの場合、クエリ結果は構造体へのポインターとして返されます。複数の結果を返すクエリは、ポインターのスライスとして返されます。デフォルトは
false。
- trueの場合、クエリ結果は構造体へのポインターとして返されます。複数の結果を返すクエリは、ポインターのスライスとして返されます。デフォルトは
emit_params_struct_pointers:- trueの場合、パラメーターは構造体へのポインターとして渡されます。デフォルトは
false。
- trueの場合、パラメーターは構造体へのポインターとして渡されます。デフォルトは
emit_methods_with_db_argument:- trueの場合、生成されたメソッドは
*Queries構造体にDBTXを格納する代わりにDBTX引数を受け入れます。デフォルトはfalse。
- trueの場合、生成されたメソッドは
emit_pointers_for_null_types:- trueで
sql_packageがpgx/v4またはpgx/v5に設定されている場合、null許可列の生成された型はdatabase/sqlのnull型(例:NullString)の代わりにポインター(例:*string)として出力されます。デフォルトはfalse。
- trueで
emit_enum_valid_method:- trueの場合、文字列が有効な列挙値かどうかを示すenum型でValidメソッドを生成します。
emit_all_enum_values:- trueの場合、すべての有効な列挙値を返すenum型ごとの関数を出力します。
build_tags:- 設定されている場合、生成されたGoファイルの先頭に
//go:build <build_tags>ディレクティブを追加します。
- 設定されている場合、生成されたGoファイルの先頭に
json_tags_case_style:- キャメルケースの場合は
camel、パスカルケースの場合はpascal、スネークケースの場合はsnake、DBの列名を使用する場合はnone。デフォルトはnone。
- キャメルケースの場合は
omit_unused_structs:trueの場合、sqlcは特定のパッケージのクエリで使用されていないテーブルと列挙構造体を生成しません。デフォルトはfalse。
output_batch_file_name:- バッチファイルの名前をカスタマイズします。デフォルトは
batch.go。
- バッチファイルの名前をカスタマイズします。デフォルトは
output_db_file_name:- dbファイルの名前をカスタマイズします。デフォルトは
db.go。
- dbファイルの名前をカスタマイズします。デフォルトは
output_models_file_name:- modelsファイルの名前をカスタマイズします。デフォルトは
models.go。
- modelsファイルの名前をカスタマイズします。デフォルトは
output_querier_file_name:- querierファイルの名前をカスタマイズします。デフォルトは
querier.go。
- querierファイルの名前をカスタマイズします。デフォルトは
output_copyfrom_file_name:- copyfromファイルの名前をカスタマイズします。デフォルトは
copyfrom.go。
- copyfromファイルの名前をカスタマイズします。デフォルトは
output_files_suffix:- 指定されている場合、生成されたファイルの名前にサフィックスが追加されます。
query_parameter_limit:- Go関数で生成される位置引数(
>= 0)。常にパラメーター構造体を出力するには、これを0に設定する必要があります。デフォルトは1。
- Go関数で生成される位置引数(
overrides
PostgreSQL/MySQL型からGo型へのデフォルトマッピングは、必要な場合にのみ標準ライブラリ外のパッケージを使用します。
例えば、uuid PostgreSQL型はgithub.com/google/uuidにマップされます。UUIDに異なるGoパッケージが必要な場合は、overrides配列でパッケージを指定します。この場合、代わりにgithub.com/gofrs/uuidを使用します。
version: "1"
packages: [...]
overrides:
- go_type: "github.com/gofrs/uuid.UUID"
db_type: "uuid"各オーバーライドドキュメントには以下のキーがあります:
db_type:- オーバーライドするPostgreSQLまたはMySQL型。サポートされる型の完全なリストは、postgresql_type.goまたはmysql_type.goで確認できます。Postgresの場合、利用可能な場合はpg_catalogプレフィックス付きの名前を使用する必要があります。
go_type:- 生成されたコードで使用するGo型の完全修飾名。
go_struct_tag:- 生成されたコードで使用するreflectスタイルの構造体タグ。例:
a:"b" x:"y,z"。すべてのフィールドに一般的なjson/dbタグが必要な場合は、代わりにemit_db_tagsおよび/またはemit_json_tagsを使用してください。
- 生成されたコードで使用するreflectスタイルの構造体タグ。例:
nullable:- trueの場合、列がnull許可の場合にこの型を使用します。デフォルトは
false。
- trueの場合、列がnull許可の場合にこの型を使用します。デフォルトは
単一のdb_typeオーバーライド設定は、null許可またはnull不許可の列のいずれかに適用されますが、両方には適用されません。両方のケースで単一のgo_typeをオーバーライドしたい場合は、2つのオーバーライドを指定する必要があります。
より複雑なimportパスの場合、go_typeはオブジェクトにすることもできます。
version: "1"
packages: [...]
overrides:
- db_type: "uuid"
go_type:
import: "a/b/v2"
package: "b"
type: "MyType"列単位の型オーバーライド
前のセクションで説明した型ベースではなく、テーブルの特定のフィールドのモデルまたはクエリ生成で使用されるGo型をオーバーライドしたい場合があります。
これは、オーバーライド定義でcolumnプロパティを指定することで設定できます。columnはtable.columnの形式である必要がありますが、schema.table.columnまたはcatalog.schema.table.columnを指定してより具体的にすることもできます。
version: "1"
packages: [...]
overrides:
- column: "authors.id"
go_type: "github.com/segmentio/ksuid.KSUID"パッケージレベルのオーバーライド
オーバーライドは、前のセクションで示したようにグローバルに設定することも、単一のパッケージにオーバーライド動作をスコープするパッケージごとに設定することもできます:
version: "1"
packages:
- overrides: [...]rename
構造体フィールド名は、列名から簡単なアルゴリズムを使用して生成されます:列名をアンダースコアで分割し、各部分の最初の文字を大文字にします。
account -> Account
spotify_url -> SpotifyUrl
app_id -> AppID生成されたフィールド名に満足しない場合は、renameマッピングを使用して新しい名前を選択します。キーは列名で、値は使用する構造体フィールド名です。
version: "1"
packages: [...]
rename:
spotify_url: "SpotifyURL"原文:https://docs.sqlc.dev/en/latest/reference/config.html