我想在 postgresql 数据库中创建不同的表。现在我正在使用 go-pg ORM 包。我已经使用以下代码找到了一种可能的方法:
func set_up_tables(db *pg.DB) error {
models := []interface{}{
(*User)(nil),
(*Account)(nil),
(*Transaction)(nil),
}
for _, model := range models {
err := db.Model(model).CreateTable(&orm.CreateTableOptions{
IfNotExists: true,
})
if err != nil {
return err
}
}
return nil
}
现在让我们看看我这样定义的用户结构:
type User struct {
UserId string `json:"userId"`
Email string `json:"emailAddress"`
Firstname string `json:"firstName"`
Lastname string `json:"lastName"`
Address string `json:"address"`
}
我希望 userId Column 是一个 Serial,这意味着它是唯一的,而不是 null,并且是自动递增的。有没有办法使用 ORM 或 Go 代码来做到这一点?我已经能够在 pgadmin 中手动更改它,但是还有更多带有 Id 的结构应该更改,我不想手动更改它。作为另一个问题,这是实现它的好方法吗?