なぜタグgorm
を無視するのですか? sql:"index"
インデックスは作成されませんでした。
ここで使用しているデータベースは PostgreSQL (インポート中_ "github.com/lib/pq"
) です。このModel
構造体が使用されます (デフォルトでgorm.Model
は自動インクリメント番号が使用されます - serial
- 主キーとして、自分で設定したかったためid
):
type Model struct {
ID int64 `sql:"type:bigint PRIMARY KEY;default:0"`
CreatedAt time.Time
UpdatedAt time.Time
DeletedAt *time.Time `sql:"index"`
}
そして、実際のモデルの1つは次のとおりです。
type TUHistory struct {
Model
TUID int64 `json:"tu_id,string" gorm:"column:tu_id" sql:"index"`
}
func (x *TUHistory) TableName() string {
return "tu_history"
}
そして、db.CreateTable(&TUHistory{})
インデックスを除いてテーブルを正しく作成するテーブルが作成されます。
一時的な回避策として、db.Model(&TUHistory{}).AddIndex("ix_tuh_tu_id", "tu_id")
インデックスを作成します。