整数の配列を Gorm モデルのデータ型として追加する
概要:
作業時Gorm を使用する PostgreSQL では、整数の配列をデータ型としてモデルに追加すると、課題が生じる可能性があります。この記事では、このような操作を試行するときに発生する一般的な問題について説明します。
問題:
Gorm モデルは、単一の PostgreSQL フィールドに数値の配列を保存しようとすると、多くの場合エラーが発生します。通常、エラーは「パニック: postgres の SQL タイプ (スライス) が無効です。」
トラブルシューティング:
この問題は、スライスをデータ型として使用することで発生します。この解決策には、基礎となる PostgreSQL ドライバ ライブラリのカスタム タイプを利用することが含まれます。
解決策:
提供されたモデル内:
<code class="go">type Game struct { gorm.Model GameCode string GameName string DeckType pq.Int64Array GameEndDate string }</code>
DeckType []int64 を次のように置き換えます。 DeckType pq.Int64Array、pq は import pq "github.com/lib/pq" としてインポートされます。
GORM タグ:
カスタム タイプをデータベース列に適切にマップするには、列の型を指定する gorm タグを追加します:
<code class="go">DeckType pq.Int64Array `gorm:"type:integer[]"`</code>
このタグは、DeckType フィールドが PostgreSQL 整数配列にマップされる必要があることを示します。
挿入例:
モデルを変更して GORM タグを追加した後、整数の配列をデータベースに挿入できます。
<code class="go">dt := []int64{1, 2, 3} db.Create(&Game{GameCode: "xxx", GameName: "xxx", DeckType: pq.Int64Array(dt), GameEndDate: "xxx"})</code>
カスタム タイプと GORM タグを使用すると、次の配列を正常に保存できます。 PostgreSQL フィールドの整数。
以上がPostgreSQL を使用して Gorm モデルに整数の配列を格納する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。