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

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

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

詳細については、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{})