Package google.golang.org/appengine/cloudsql (v1.6.8)

Le package Cloudsql fournit l'accès aux bases de données Google Cloud SQL.

Ce package ne fonctionne pas dans l'environnement flexible App Engine.

Ce package est destiné aux pilotes MySQL et permet d'établir des connexions spécifiques à App Engine. Les applications doivent utiliser ce package via "database/sql:". Sélectionnez un pilote Go MySQL pur compatible avec ce package et utilisez "sql.Open" avec le protocole "cloudsql" et une adresse de l'instance Cloud SQL.

Le pilote "go-sql-driver" est un pilote Go MySQL dont la compatibilité avec Cloud SQL a été testée :

import "database/sql"
import _ "github.com/go-sql-driver/mysql"

db, err := sql.Open("mysql", "user@cloudsql(project-id:instance-name)/dbname")

Le pilote "mymysql" fonctionne également avec Cloud SQL :

import "database/sql"
import _ "github.com/ziutek/mymysql/godrv"

db, err := sql.Open("mymysql", "cloudsql:instance-name*dbname/user/password")

À l'aide de l'un de ces pilotes, vous pouvez envoyer une requête SQL standard. Cet exemple suppose qu'il existe une table appelée "users" et comprenant les colonnes "first_name" et "last_name" :

rows, err := db.Query("SELECT first_name, last_name FROM users")
if err != nil {
    log.Errorf(ctx, "db.Query: %v", err)
}
defer rows.Close()

for rows.Next() {
    var firstName string
    var lastName string
    if err := rows.Scan(&firstName, &lastName); err != nil {
        log.Errorf(ctx, "rows.Scan: %v", err)
        continue
    }
    log.Infof(ctx, "First: %v - Last: %v", firstName, lastName)
}
if err := rows.Err(); err != nil {
    log.Errorf(ctx, "Row error: %v", err)
}

Fonctions

func Dial

func Dial(instance string) (net.Conn, error)

La fonction Dial se connecte à l'instance Cloud SQL nommée.