El paquete cloudsql expone el acceso a las bases de datos de Google Cloud SQL.
Este paquete no funciona en el “entorno flexible” de App Engine.
Este paquete está destinado a los controladores de MySQL para realizar conexiones específicas de App Engine. Las aplicaciones deben usar este paquete mediante database/sql: Selecciona un controlador de Go MySQL puro que admita este paquete y usa sql.Open con el protocolo “cloudsql” y una dirección de la instancia de Cloud SQL.
Un controlador de Go MySQL cuyo buen funcionamiento con Cloud SQL fue probado es go-sql-driver:
import "database/sql" import _ "github.com/go-sql-driver/mysql" db, err := sql.Open("mysql", "user@cloudsql(project-id:instance-name)/dbname")
Otro controlador que funciona bien con Cloud SQL es el controlador mymysql:
import "database/sql" import _ "github.com/ziutek/mymysql/godrv" db, err := sql.Open("mymysql", "cloudsql:instance-name*dbname/user/password")
Puede realizar una consulta de SQL estándar con cualquiera de estos controladores. En este ejemplo, se supone que hay una tabla llamada 'users' con las columnas 'first_name' y '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) }
Funciones
func Dial
Dial se conecta a la instancia de Cloud SQL nombrada.