1

なぜタグ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")インデックスを作成します。

4

1 に答える 1