万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

GolangからPostgrsSQL

ぐぐるJSONで入れたり、暗号付きのサーバだったり、localhostだったり面倒なのが多くて コピペしてささっと確認できるのがないので貼った。 Herokuにつなぐのに楽なのがないのか・・・?

package main

import (
    "database/sql"
    "fmt"
    "os"
    _ "github.com/lib/pq"
)
func main() {
    db, _ := sql.Open("postgres", "user=user password=password host=host dbname=dbbane")
    defer db.Close()

    rows, err := db.Query("SELECT row FROM table;")
    if err != nil {
        fmt.Println(err)
        os.Exit(1)
    }

    for rows.Next() {
        var row string
        rows.Scan(&row)
        fmt.Println(row)
    }
}

別の方法

sql.Open("postgres", 第2引数)の第2引数は以下でもいい。"postgres",は必須だよ。

postgres://user_name:password@server_name:5432/db_name?sslmode=disable

なのでHerokuではDATABASE_URL環境変数が持ってるので、

    databaseUrl := os.Getenv("DATABASE_URL")
    db, _ := sql.Open("postgres", databaseUrl)

としてもいいだろう。

ローカルのときはこんな感じか

export DATABASE_URL=postgres://user_name:password@server_name:5432

※ちなみにHeokuは?sslmode=disableをつけると怒られる。

実行

go run potgresql.go