Я хочу объявить отношение внешнего ключа между таблицами, используя 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.