package cloudpostgres
import "gocloud.dev/postgres/cloudpostgres"
Package cloudpostgres provides connections to managed PostgreSQL Cloud SQL instances. See https://cloud.google.com/sql/docs/postgres/ for more information.
URLs
For postgres.Open, cloudpostgres registers for the scheme "cloudpostgres". The default URL opener will create a connection using the default credentials from the environment, as described in https://cloud.google.com/docs/authentication/production. To customize the URL opener, or for more details on the URL format, see URLOpener.
See https://godoc.org/gocloud.dev#hdr-URLs for background information.
Code:play
Example¶
package main
import (
"context"
"log"
"gocloud.dev/gcp"
"gocloud.dev/gcp/cloudsql"
"gocloud.dev/postgres/cloudpostgres"
"golang.org/x/oauth2"
"golang.org/x/oauth2/google"
)
func main() {
ctx := context.Background()
creds, err := google.FindDefaultCredentials(ctx, "https://www.googleapis.com/auth/cloud-platform")
if err != nil {
log.Fatal(err)
}
authClient := gcp.HTTPClient{Client: *oauth2.NewClient(ctx, creds.TokenSource)}
db, _, err := cloudpostgres.Open(ctx, cloudsql.NewCertSource(&authClient), &cloudpostgres.Params{
// Replace these with your actual settings.
ProjectID: "example-project",
Region: "us-central1",
Instance: "my-instance01",
User: "myrole",
Database: "test",
})
if err != nil {
log.Fatal(err)
}
// Use database in your program.
db.Exec("CREATE TABLE foo (bar INT);")
}
Index ¶
- Constants
- func Open(ctx context.Context, certSource proxy.CertSource, params *Params) (*sql.DB, func(), error)
- type Params
- type URLOpener
Examples ¶
Constants ¶
const Scheme = "cloudpostgres"
Scheme is the URL scheme cloudpostgres registers its URLOpener under on postgres.DefaultMux.
Functions ¶
func Open ¶
func Open(ctx context.Context, certSource proxy.CertSource, params *Params) (*sql.DB, func(), error)
Open opens a Cloud SQL database. The second return value is a cleanup function that calls Close on the returned database.
Types ¶
type Params ¶
type Params struct { // ProjectID is the project the instance is located in. ProjectID string // Region is the region the instance is located in. Region string // Instance is the name of the instance. Instance string // User is the database user to connect as. User string // Password is the database user password to use. Password string // Database is the PostgreSQL database name to connect to. Database string // Values sets additional parameters, as documented in // https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-PARAMKEYWORDS. Values url.Values // TraceOpts contains options for OpenCensus. TraceOpts []ocsql.TraceOption }
Params specifies how to connect to a Cloud SQL database.
type URLOpener ¶
type URLOpener struct { // CertSource specifies how the opener will obtain authentication information. // CertSource must not be nil. CertSource proxy.CertSource // TraceOpts contains options for OpenCensus. TraceOpts []ocsql.TraceOption }
URLOpener opens GCP PostgreSQL URLs like "cloudpostgres://user:password@myproject/us-central1/instanceId/mydb".
func (*URLOpener) OpenPostgresURL ¶
OpenPostgresURL opens a new GCP database connection wrapped with OpenCensus instrumentation.
Source Files ¶
cloudpostgres.go
- Version
- v0.13.0
- Published
- Apr 24, 2019
- Platform
- darwin/amd64
- Imports
- 16 packages
- Last checked
- 7 hours ago –
Tools for package owners.