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

‫GORM הוא כלי למיפוי יחסי אובייקטים (ORM) לשפת התכנות Go. הוא מספק מסגרת למיפוי של מודל דומיין מונחה-אובייקטים למסד נתונים רלציוני. אפשר לשלב מסדי נתונים של ניב GoogleSQL עם GORM באמצעות ניב Spanner בקוד פתוח (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{})