Попробуйте определить ваши модели следующим образом:
type Report struct {
gorm.Model
PersonalDetail PersonalDetail `json:"PersonalDetail" gorm:"foreignkey:ReportId"`
}
type PersonalDetail struct {
gorm.Model
Name string `json:"Name"`
Age string `json:"Age"`
ReportId uint `sql:"type:bigint REFERENCES reports(id) ON DELETE CASCADE"`
}
У меня возникли проблемы с получением внешних ключей для работы в GORM, поэтому я обнаружил, что использование тега SQL для определения отношения, кажется, работает лучше,Это не так чисто, так как вам нужно определить фактическое имя базы данных, а не имя поля, но оно работает.
Также имейте в виду порядок, в котором вы переносите таблицы.Возможно, вам придется сделать это в таком порядке, чтобы на таблицы, которые еще не были созданы, не были ссылки.Для этого примера мигрируйте Reports
до PersonalDetail
.