Как объявить отношение внешнего ключа в go-xorm для postgres? - PullRequest
0 голосов
/ 06 мая 2019

Я хочу объявить отношение внешнего ключа между таблицами, используя XORM в golang для postgres.

Я попытался использовать следующую схему для создания отношения внешнего ключа.

type Author struct {
    Id uint64 `xorm:"pk autoincr"`
    Name string `xorm:"VARCHAR(128) NOT NULL"`
    Email string `xorm:"VARCHAR(128) NOT NULL UNIQUE"`
    Phone string `xorm:"VARCHAR(32)"`
    Age float32
    Address string `xorm:"VARCHAR(256)"`

    Created time.Time `xorm:"created"`
    Updated time.Time `xorm:"updated"`
}


type Book struct {
    Id uint64 `xorm:"pk autoincr"`
    Name string `xorm:"varchar(128) NOT NULL"`
    Isbn string `xorm:"varchar(64) NOT NULL"`
    Author *Author `xorm:"-"`

    Created time.Time `xorm:"created"`
    Updated time.Time `xorm:"updated"`
}

А потом,

err := engine.Sync(new(models.Author))
err = engine.Sync(new(models.Book))

Но приведенный выше код не создает внешний ключ, даже нет столбца с именем author в таблице Book. Помогите мне решить эту проблему, как я могу объявить внешний ключ для postgres.

...