Я пытаюсь установить связь между двумя моделями в базе данных PostgreSQL, используя Go и gorm.
Вот мой код, первая модель:
Trip.go
package model
import "github.com/jinzhu/gorm"
// Trip models
type Trip struct {
gorm.Model
TripName string
TripDescription string
}
Вторая модель:
TripKeyPoints.go
package model
import "github.com/jinzhu/gorm"
// TripKeyPoint models
type TripKeyPoint struct {
gorm.Model
KPName string
KPDescription string
TripID Trip
}
Часть кода из файла, который выполняет миграцию и инициализирует все
db.DropTableIfExists(&User{}, &model.Trip{}, &model.TripKeyPoint{})
db.AutoMigrate(&User{}, &model.Trip{}, &model.TripKeyPoint{})
db.Model(&model.TripKeyPoint{}).AddForeignKey("trip_id", "trips(id)", "CASCADE", "CASCADE")
Пользовательские модели - это простоаддон, но я оставляю это в этом фрагменте.Из-за многих тестов я в начале отбрасываю таблицы.
Вот что я получаю, когда запускаю код:
?[35m(C:/golang_lab/golang-gorm-tutorial/users.go:36)?[0m
?[33m[2019-09-21 18:40:34]?[0m ?[31;1m pq: column "trip_id" referenced in foreign key constraint does not exist ?[0m
И да, это правда, когда я захожу в postgres в таблицеtrip_key_points нет столбца с внешним ключом.
Что мне нужно сделать, я хочу иметь один объект TRIP и затем назначить другие TripKeyPoints.
Есть идеи, почему?Или как заставить GORM создать этот столбец?