GORM 是适用于 Go 编程语言的对象关系映射 (ORM) 工具。它提供了一个框架,用于将面向对象的网域模型映射到关系型数据库。您可以使用开源 Spanner Dialect (SpannerDialect) 将 GoogleSQL 方言数据库与 GORM 集成。
本文档介绍了如何配置 GORM 以连接到 Spanner Omni。GORM 与 Spanner Omni 的集成方式与它与 Spanner 的集成方式相同。请注意,GORM 支持使用 GoogleSQL 方言与 Spanner Omni 集成,但不支持使用 PostgreSQL 方言。
如需了解详情,请参阅 Spanner 文档中的将 Spanner 与 GORM 集成。
前提条件
Spanner Omni 需要 go-gorm-spanner 1.10.0 版或更高版本。如需在应用中使用 Spanner GORM 方言,请将以下模块添加到 go.mod 文件:
go get github.com/googleapis/go-sql-spanner
go get github.com/googleapis/go-gorm-spanner
为 GoogleSQL 数据库配置 GORM
如需在应用中使用 GoogleSQL GORM 方言,请将以下导入语句添加到初始化 GORM 的文件中:
import (
"fmt"
"gorm.io/gorm"
_ "github.com/googleapis/go-sql-spanner"
spannergorm "github.com/googleapis/go-gorm-spanner"
)
dsn := fmt.Sprintf("%s/databases/%s?use_plain_text=true", SPANNER_OMNI_ENDPOINT, DATABASE_ID)
db, err := gorm.Open(spannergorm.New(spannergorm.Config{DriverName: "spanner", DSN: dsn}), &gorm.Config{})