将 Spanner 与 GORM(PostgreSQL 方言)集成

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

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

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

  1. 确保 PGAdapter 与使用 GORM 与 Spanner 进行连接的应用在同一机器上运行。

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

  2. 将 PostgreSQL GORM 方言的 import 语句添加到您的应用中。此驱动程序与您通常用于 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 结合使用的问题。