Skip to content

Instantly share code, notes, and snippets.

@renesugar
Forked from erans/main.go
Created March 26, 2018 20:04
Show Gist options
  • Save renesugar/7dae5df44e65660d01ab0976d2bf7335 to your computer and use it in GitHub Desktop.
Save renesugar/7dae5df44e65660d01ab0976d2bf7335 to your computer and use it in GitHub Desktop.
Go Example: Google CloudSQL with CloudSQL Proxy and GORM
package main
import (
"github.com/jinzhu/gorm"
_ "database/sql"
_ "github.com/GoogleCloudPlatform/cloudsql-proxy/proxy/dialers/mysql"
)
// You can read more in this post: http://forecastcloudy.net/2016/06/28/using-google-cloud-sql-from-go-with-gorm-in-google-container-engine-and-google-compute-engine/
func main() {
// Using cloudsql-proxy will help you avoid white listing IPs and handling SSL.
// In this case, it will also run inside your Go program and will not require
// an additional process or container.
// Connection String details:
// * user - the user created inside the DB. You can see more details on how to create it without password here:
// https://cloud.google.com/sql/docs/sql-proxy#flags
// * project-id - your project id
// * zone - your general zone (us-central1/us-west1/etc)
// * db-name - the name of the database instance as it appears in the console
var dbConnectionString = "user@cloudsql(project-id:zone:instance-name)/db-name?charset=utf8&parseTime=True&loc=UTC"
var db *gorm.DB
var err error
if db, err = gorm.Open("mysql", dbConnectionString); err != nil {
panic(err)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment