我想在 golang 中为 postgres 使用 XORM 声明表之间的外键关系。
我尝试了以下模式来创建外键关系。
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))
但是上面的代码没有创建外键,甚至在 Book 表中没有名为 author 的列。帮助我解决如何为 postgres 声明外键的问题。