将 Spanner 与 GORM(PostgreSQL 方言)集成

GORM 是 Go 编程语言的对象关系映射工具。它提供了一个框架,用于将面向对象的网域模型映射到关系型数据库。

您可以使用标准 PostgreSQL pgx 驱动程序和 PGAdapter 将 Spanner PostgreSQL 数据库与 GORM 集成。

使用 Spanner PostgreSQL 方言数据库设置 GORM

  1. 确保 PGAdapter 与使用 GORM 连接到 Spanner 的应用位于同一台机器上。

    如需了解详情,请参阅启动 PGAdapter

  2. 向应用添加 PostgreSQL GORM 方言的导入语句。此驱动程序与您通常在 PostgreSQL 数据库中使用的驱动程序相同。

  3. 在 GORM 连接字符串中,将 localhost5432 指定为数据库服务器主机和端口。GORM 要求在连接字符串中提供用户名和密码。PGAdapter 会忽略这些。

    • (可选)如果 PGAdapter 已配置为监听默认 PostgreSQL 端口 (5432) 以外的端口,请指定其他端口号。
    • PGAdapter 不支持 SSL。默认情况下,GORM 会首先尝试在启用 SSL 的情况下进行连接。在连接请求中停用 SSL 可加快连接过程,因为它需要的往返次数会减少一次。
    import (
      "gorm.io/driver/postgres"
      "gorm.io/gorm"
    )
    
    dsn := "host=localhost user=gorm password=gorm dbname=gorm port=5432 sslmode=disable"
    db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{})
    

如需了解 PostgreSQL 的更多连接选项,请参阅将 GORM 与 PostgreSQL 搭配使用的相关文档

将 GORM 与 Spanner PostgreSQL 方言数据库搭配使用

如需详细了解将 GORM 与 Spanner 搭配使用的功能和建议,请参阅 GitHub 上的参考文档

后续步骤

  • 查看将 GORM 与 PGAdapter 和 Spanner 搭配使用的示例应用
  • 详细了解 GORM
  • 详细了解 PGAdapter
  • 提交 GitHub 问题以报告 bug 或提出有关将 GORM 与 Spanner 和 PGAdapter 搭配使用的问题。