שימוש ב-GORM כדי להתחבר ל-Spanner Omni

GORM הוא כלי למיפוי יחסי אובייקטים (ORM) לשפת התכנות Go. הוא מספק מסגרת למיפוי של מודל דומיין מונחה-אובייקטים למסד נתונים רלציוני. אפשר לשלב מסדי נתונים של ניב GoogleSQL עם GORM באמצעות Spanner Dialect (SpannerDialect) בקוד פתוח.

במאמר הזה נסביר איך להגדיר את GORM כדי להתחבר ל-Spanner Omni. השילוב של GORM עם Spanner Omni זהה לשילוב שלו עם Spanner. חשוב לדעת: GORM תומך בשילוב עם Spanner Omni באמצעות הניב GoogleSQL, אבל לא באמצעות הניב 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

הגדרת GORM למסדי נתונים של GoogleSQL

כדי להשתמש בניב 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{})