Golang Go语言中 gorm 如何使用 postgresql 中 schema 下的 table

发布于 1周前 作者 itying888 来自 Go语言

Golang Go语言中 gorm 如何使用 postgresql 中 schema 下的 table
默认 gorm 时都是使用 db 下的 table,那如何使用 db 下 schema 中的 table 呢?

3 回复

默认应该是 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的简要步骤:

  1. 安装依赖: 确保你已经安装了GORM和PostgreSQL的驱动。你可以通过以下命令安装:

    go get -u gorm.io/gorm
    go get -u gorm.io/driver/postgres
    
  2. 数据库连接: 使用gorm.Open连接PostgreSQL数据库,并在DSN(数据源名称)中指定数据库信息,包括schema(如果数据库用户名有权限访问多个schema)。

  3. 指定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")
    }
    
  4. 模型定义: 定义你的GORM模型时,只需指定表名即可,GORM会根据DSN中的schema路径自动找到正确的表。

    type User struct {
        gorm.Model
        Name string
    }
    

通过这种方式,你可以轻松地在GORM中使用PostgreSQL中的特定schema下的表。

回到顶部