go-gorm 如何用额外的列来表达 many2many

go-gorm how to express many2many with additional columns

我想在 GORM 中表达以下 tables:

CREATE TABLE indexes (
    id INTEGER PRIMARY KEY,
    name VARCHAR
)
CREATE TABLE services (
    id INTEGER PRIMARY KEY,
    name VARCHAR
)
CREATE TABLE index_service (
    index_id INTEGER REFERENCES indexes(id),
    service_id INTEGER REFERENCES services(id),
    write_active INTEGER,
    PRIMARY KEY (index_id, service_id)
)

阅读文档和有关堆栈溢出的问题后。我仍然找不到关于如何在 GORM 的 DSL

中表达附加列 write_active 的答案

到目前为止我得到的是

type Index struct {
   ID        unit `json:"id" gorm:"primary_key"`
   Name string    `json:"name" gorm:"not null"`
}

type Service struct {
   ID        unit `json:"id" gorm:"primary_key"`
   Name string    `json:"name" gorm:"not null"`
}

但是,我不知道如何写复合table。

您需要像这样创建额外的模型:

package database

type IndexService struct {
  WriteActive bool `gorm:"not null,DEFAULT false"`
}