GORM を使用して Spanner Omni に接続する

GORM は、Go プログラミング言語のオブジェクト リレーショナル マッピング(ORM)ツールです。オブジェクト指向のドメインモデルをリレーショナル データベースにマッピングするためのフレームワークが提供されています。オープンソースの Spanner 言語SpannerDialect)を使用して、 GoogleSQL 言語データベースを GORM と統合できます。

このドキュメントでは、Spanner Omni に接続するように GORM を構成する方法について説明します。GORM は、Spanner と統合する場合と同じ方法で Spanner Omni と統合されます。GORM は、GoogleSQL 言語を使用した Spanner Omni との統合をサポートしていますが、PostgreSQL 言語を使用した統合はサポートしていません。

詳細については、 Spanner と GORM を統合するの Spanner ドキュメントをご覧ください。

前提条件

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{})