php エディターの Youzi が、sqlc.yaml 設定に関する質問を紹介します。 postgresql を使用する場合、多くの場合、期間を表すために時間間隔 (time.Duration) を使用する必要があります。ただし、sqlc.yaml 構成ファイル内の時間間隔の構成が有効にならず、デフォルトの構成によって上書きされる場合があります。この問題を解決するにはどうすればよいでしょうか?この記事を読み続けてください。詳細な回答を提供します。
sqlc codegen アプリケーションに問題が見つかりました。 interval
(postgresql) フィールドが必要な場合、sqlc は int64
フィールドを持つオブジェクトを生成します。このソリューションは壊れているように見え、行をスキャンするとエラーが発生します: errorf("cannot Convert %v to interval", value)
sqlc.yaml:
リーリースキーマ.sql:
リーリー生成されたモデル:
リーリーこのフィールドを time.duration タイプに設定することで、この問題はすぐに解決されました。時間が経過するとコードは機能し始めますが、このコードは生成されたコードであり、間違った決定のように見えます。
sqlc.yaml 構成を介して型をオーバーライドしようとすると、何も得られません。オブジェクトはまだ int64 型で作成されています。どこで間違ったのでしょうか?どうすれば修正できますか?
サポートされるタイプで、pg_catalog.interval
は、postgres の interval
によってもサポートされていることがわかります。その価値。
したがって、int64
の代わりに time.duration
を使用したい場合は、overrides
の部分を次のように変更する必要があります。
リーリー
以上がsqlc.yaml 設定は、postgresql の間隔を time.Duration にオーバーライドしません。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。