Почему GORM не генерирует ИНОСТРАННОЕ ОГРАНИЧЕНИЕ для Postgres? - PullRequest
0 голосов
/ 27 декабря 2018

Я новичок в Go и GORM.После генерации моей БД для тестирования я не вижу, чтобы отношение «Один ко многим» было правильно представлено в Postgres.

Я создал несколько моделей для переноса в Postgres, например, эти 2 конкретно:

type PgPiece struct {
    ID             string `gorm:"primary_key"`
    Name           string
    MinPrice       float64
    Likes          int
    Description    string
    Materials      string
    Techniques     string
    Width          float64
    Height         float64
    Length         float64
    Hours          int
    CreatedAt      *time.Time
    ModifiedAt     *time.Time
    IsFavorite     bool
    EstimatedValue float64
    Owner          PgUser `gorm:"foreignkey:OwnerID"`
    OwnerID        string
    Author         PgUser `gorm:"foreignkey:AuthorID"`
    AuthorID       string
    Favorites      []PgUser       `gorm:"many2many:user_favorite_piece"`
    Images         []PgPieceImage `gorm:"foreignkey:piece_id"`

}

type PgPieceImage struct {
    ID        string `gorm:"primary_key"`
    Url       string
    Position  int
    Width     int
    Height    int
    CreatedAt *time.Time
    Piece PgPiece `gorm:"foreignkey:PieceRef"`
    PieceRef   string `gorm:"column:piece_id"`
}

И как результат, я вижу это в postgres для PgPieceImage

CREATE TABLE public.piece_image
(
    id text COLLATE pg_catalog."default" NOT NULL,
    url text COLLATE pg_catalog."default",
    "position" integer,
    width integer,
    height integer,
    created_at timestamp with time zone,
    piece_id text COLLATE pg_catalog."default",
    CONSTRAINT piece_image_pkey PRIMARY KEY (id)
)
WITH (
    OIDS = FALSE
)
TABLESPACE pg_default;

ALTER TABLE public.piece_image
    OWNER to freddy;

Почему там нет ИНОСТРАННОГО ОГРАНИЧЕНИЯ?

...