我想使用golang中的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声明外键的问题。