Как удалить таблицу со связями в GORM? - PullRequest
2 голосов
/ 19 апреля 2019

Я удалил объект и хочу, чтобы его идентификатор тоже был удален в таблице отношений. Как мне это сделать? т.е. объекты с отношениями удаляются, но таблицы их отношений остаются.

enter image description here

Также хотел спросить, GORM - лучшее решение ORM для Go-Gin?

1 Ответ

0 голосов
/ 23 апреля 2019

Попробуйте явно добавить внешние ключи и ON DELETE CASCADE к вашим моделям.Я обнаружил, что GORM может быть сомнительным, когда он относится к такого рода вещам, но выполнение этого явно всегда заставляет его работать.

Например:

type Person struct {
    ID      int
    Bio     Biography `gorm:"Foreignkey:PersonID;"`
    Name    string
}

type Biography struct {
    ID       int
    Content  string
    PersonID int    `sql:"type:bigint REFERENCES people(id) ON DELETE CASCADE"`
}

Примечание: вынеобходимо указать, как будет называться фактический столбец и таблица базы данных, а не поле.Поскольку GORM автоматически множит и преобразует таблицы в snake_case, я ссылаюсь на столбец people(id).Если вы перезаписали эту функцию, используйте любое имя таблицы и столбца.

...