0

我想在 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 声明外键的问题。

4

0 回答 0