У меня проблема при попытке создать мою БД с помощью gorm. все таблицы и отношения (внешние ключи) сгенерированы успешно, за исключением отношения многие ко многим, когда я строю ГБ БД генерирует таблицу ассоциации, но без внешних ключей.
У меня есть следующие структуры: устройство и группа. (в группе может быть более 1 устройства, и одно и то же устройство может входить в более чем одну группу)
//Group group of devices
type Group struct {
gorm.Model
Name string
SVG string
Devices []*Device `gorm:"many2many:device_group;"`//association_foreignkey:id;foreignkey:id"`
}
// Устройство представляет собой отдельное устройство физического обмена
type Device struct {
gorm.Model
DeviceName string
Svg string
IP string
LastActive time.Time
MAC string
Version string
Groups []*Group `gorm:"many2many:device_group;"`
}
добавить иностранный ключ:
db.Model(device).AddForeignKey("id", "device_group(device_id)", "CASCADE", "CASCADE")
db.Model(group).AddForeignKey("id", "device_group(group_id)", "CASCADE", "CASCADE")
функция добавления внешнего ключа выдает мне следующую ошибку:
[2020-01-28 11:53:11] pq: нет уникального ограничение, соответствующее заданным ключам для ссылочной таблицы "device_group"
, как вы можете видеть: она генерирует таблицу device_group, но внешних ключей нет. Я пытался играть с тегами поля, пытался изменить функцию AddForeignKey или удалить ее, но, похоже, ничего не получалось.
есть идеи?
спасибо