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