-
GORM + PostgreSQL で double precision を使う場合は float8 を指定すると良さそう
GORM で PostgreSQL を利用する場合の小ネタです。 執筆時点 (2024/04/06) での GORM のバージョンは v1.25.9、GORM PostgreSQL Driver のバージョンは v1.5.7 です。将来のバージョンでは挙動が変わる可能性があるのでご了承ください。 先にまとめ 準備 以下のような compose.yaml ファイルを用意して、Docker Compose で PostgreSQL を起動できるようにしておきます。 本題 GORM で float64 型のフィールドを持つモデルを定義して AutoMigrate すると、PostgreSQL 上では decimal (numeric) 型のカラムを持ったテーブルが作成されます。 実行してみます。 ログを見ると、確かに decimal 型のカラムを持ったテーブルが作成されていることがわかります。 しかし、場合によっては decimal ではなく PostgreSQL の倍精度浮動小数点データ型 (double precision) で格納したいこともあると思います。 そこで、gorm:”type:double precision” を指定してみます。 ログを見ると、今度は double precision 型のカラムを持ったテーブルが作成されていることがわかります。 しかし、この状態でもう一度…