Important Notice: ElephantSQL is shutting down. Read all about it in our End of Life Announcement

The recommended way to connect to postgres is via the client pq.

Then you can either use the standard database/sql inteface. Or you can use the lightweight ORM jet.

//This example uses the ORM jet
package main

import (
    "github.com/eaigner/jet"
    "github.com/lib/pq"
    "log"
    "os"
)

func logFatal(err error) {
    if err != nil {
        log.Fatal(err)
    }
}
func main() {
    //Make sure you setup the ELEPHANTSQL_URL to be a uri, e.g. 'postgres://user:pass@host/db?options'
    pgUrl, err := pq.ParseURL(os.Getenv("ELEPHANTSQL_URL"))
    logFatal(err)
    db, err := jet.Open("postgres", pgUrl)
    logFatal(err)
    var people []*struct {
        Id        int
        FirstName string
        LastName  string
    }
    err = db.Query("SELECT * FROM people").Rows(&people)
    logFatal(err)
    for _, person := range people {
        log.Printf("Id: %v, First Name: %s, Last Name: %s",
            person.Id,
            person.FirstName,
            person.LastName)
    }
}