🗂
[GORM] DefaultTableNameHandlerとTableName()を併用すると?
DefaultTableNameHandler
デフォルトのデーブル名を変更する1つ目の方法としてDefaultTableNameHandlerがあります。使い方は以下。
gorm.DefaultTableNameHandler = func (db *gorm.DB, defaultTableName string) string {
return "prefix_" + defaultTableName;
}
TableName()
また対象のstructにTableNameというテーブル名を返すメソッドを追加するとデフォルトのデーブル名を変更できます。
type User struct {} // デフォルトのテーブル名は `users`
// Userのテーブル名を`profiles`にする
func (User) TableName() string {
return "profiles"
}
併用すると?
DefaultTableNameHandlerとTableName()を2つとも用いるとTableName()が勝ちます。ですので、prefixなどを付けたい場合はTableNameで設定したらいいみたいです。
Discussion