ホームページ > バックエンド開発 > Golang > sqlc.yaml 設定は、postgresql の間隔を time.Duration にオーバーライドしません。

sqlc.yaml 設定は、postgresql の間隔を time.Duration にオーバーライドしません。

WBOY
リリース: 2024-02-09 20:09:18
転載
1259 人が閲覧しました

sqlc.yaml 配置不会覆盖 postgresql 时间间隔到 time.Duration

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 サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート