🍵

【Go】Gormでデフォルトのテーブル名を変更したい

2022/08/20に公開

はじめに

今回は、Gormに関しての小ネタです。

本題

Gormは、構造体名をスネークケース・複数形で表したものを、対応するテーブル名とするようです。

詳しくは、Gorm公式様をご覧くださいませ。
https://gorm.io/ja_JP/docs/conventions.html

例えば、以下のようなObanyaki構造体があるとき、Gormでは対応するテーブル名をobanyakisとします。

type Obanyaki struct {}

大判焼きなんて呼び方をしない方もいらっしゃると思います。今川焼き派の方々のためにも、対応するテーブル名を変えてみましょう。
尚、構造体名ごと変えればいいという意見はごもっともです。

// 今回、構造体名はそのまま
type Obanyaki struct {}

func (o Obanyaki) TableName() string {
	return "imagawa_yakis"
}

Gormでは、構造体が以下のTablerインターフェースを実装することで、対応するテーブルの名前をカスタマイズすることができるみたいです。

type Tabler interface {
    TableName() string
}

終わりに

みなさまは大判焼きのことをなんて呼びますか?

Discussion