【发布时间】:2023-02-02 12:13:03
【问题描述】:
为了进一步解释我的问题,我在 postgreSQL 中有一个数据库。为了让数据库看起来更干净,我将大部分表分成两个模式,一个用于“用户”,另一个用于所谓的“团队”。正如预期的那样,我通过在用户表中提供 teamID,在 teams.team 表和 users.user 表之间创建了多对一关系。我正在为 GoLang 中的当前软件编写后端,并决定使用 Gorm 作为处理数据库的方式。我已经掌握了 gorm 的窍门,并弄清楚了如何使用 schema-s 并测试 Gorm 是否可以处理我决定使用结构的数据库解决方案,我创建了这些结构来表示表,以再次创建我的所有表分贝。 对于不同的模式,我不得不建立不同的连接并指定我想要它们用于特定的模式,因为我必须写到用户内部的团队有一个连接,它认为它在同一个模式中
type User struct {
gorm.Model
FirstName string
LastName string
Email string
ElsysEmail string
Mobile string
Password string
InfoID uint
Info Info
SecurityID uint
Security Security
RoleID uint
Role Role
TeamID uint
Team Team
LastLogin time.Time
}
对于在架构内创建表时遇到问题的任何人,这是我的解决方案:
dsn := "host=localhost user=postgres password=password dbname=ht9 port=5432 sslmode=disable"
db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{NamingStrategy{TablePrefix: "schemaName."}})
if err != nil {
log.Fatal(err)
}
免责声明:我的问题几乎与这个问题相同 - GORM model foreign key to different Postgres schema - 但还没有人回答
【问题讨论】:
标签: postgresql go database-schema go-gorm