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