如何在postgres的go-xorm中声明外键关系?

时间:2019-05-06 14:22:08

标签: go go-xorm

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

0 个答案:

没有答案