Golang Go语言中 gorm 如何使用 postgresql 中 schema 下的 table
Golang Go语言中 gorm 如何使用 postgresql 中 schema 下的 table
默认 gorm 时都是使用 db 下的 table,那如何使用 db 下 schema 中的 table 呢?
默认应该是 public 这个 schema 中的 table,gorm 没看到支持这个方面的文档,可以去 github 提个问题。
更多关于Golang Go语言中 gorm 如何使用 postgresql 中 schema 下的 table的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
谢谢
之前在 GitHub 上看了下有人也提过类似的问题,jinzhu 的回答是通过 db.Table(“schema.table”) 这样的方式去解决
看来目前只能这样了
在Go语言中使用GORM(Go Object-Relational Mapping)与PostgreSQL时,可以通过配置来指定数据库中的schema和table。以下是如何在GORM中指定PostgreSQL schema下的table的简要步骤:
-
安装依赖: 确保你已经安装了GORM和PostgreSQL的驱动。你可以通过以下命令安装:
go get -u gorm.io/gorm go get -u gorm.io/driver/postgres
-
数据库连接: 使用
gorm.Open
连接PostgreSQL数据库,并在DSN(数据源名称)中指定数据库信息,包括schema(如果数据库用户名有权限访问多个schema)。 -
指定Schema和Table: GORM允许你在定义模型时指定表名,以及通过
Tabler
接口来自定义schema。不过,直接指定schema的一种简单方法是修改DSN,在数据库名后加上?search_path=your_schema
。例如:dsn := "user=youruser password=yourpassword dbname=yourdbname sslmode=disable search_path=your_schema" db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{}) if err != nil { panic("failed to connect database") }
-
模型定义: 定义你的GORM模型时,只需指定表名即可,GORM会根据DSN中的schema路径自动找到正确的表。
type User struct { gorm.Model Name string }
通过这种方式,你可以轻松地在GORM中使用PostgreSQL中的特定schema下的表。