以下の内容はhttps://otiai10.hatenablog.com/entry/2015/07/16/171222より取得しました。


gormでcomposite primary keyを使いたいのだが

なんかこうするっぽい

type Foo struct {
    Bar string `gorm:"primary_key"`
    Baz int    `gorm:"primary_key"`
}

で、gorm.DBのAutoMigrateかCreateTableを叩けばいいわけで、LogMode(true)で発行されてるSQLを確認すると

CREATE TABLE "foos" (
    "bar" varchar(255),
    "baz" serial,
    PRIMARY KEY (bar,baz)
)

だいたいあってるんだけど、bazserialだとダメなんですけどそれは

原因究明

修正した

type Foo struct {
    Bar string `gorm:"primary_key"`
-   Baz int    `gorm:"primary_key"`
+   Baz int    `gorm:"primary_key" sql:"TYPE:int"`
}

そしたら

CREATE TABLE "foos" (
    "bar" varchar(255),
    "baz" int,
    PRIMARY KEY (bar,baz)
)

ほしいSQLになった

DRY




以上の内容はhttps://otiai10.hatenablog.com/entry/2015/07/16/171222より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14