Go database/sql の操作ガイドあったんかい
database/sqlを触ってますが、いまいちしっかり説明してくれるリソースがないなあと思ってたら、goのwikiにGo database/sql tutorialがありました!
ということで試しながらポイントを整理してきます。
Overview DBへのアクセスには sql.DB を利用 sql.DB は指定したDriverへアクセスを抽象化した存在 これによってDriverがPostgresでも、MySQLでも統一した操作を提供 Importing a Database Driver 利用には database/sql とDriverパッケージの二つが必要 一般的にDriverパッケージは依存するため使わない database/sql を介してアクセス Dirver自体は次のようにすることでDriverとして登録(Go import _ ってなんだみてね) import ( "database/sql" _ "github.com/lib/pq" ) wikiではmysqlですが、今回はpostgres driverを使います
Accessing the Database sql.Open()により取得したobjectでDBを操作可能 第一引数はdriverの名前で、第二引数はパラメーター(PGの場合はココ)を渡します
テストとしてDBが必要なのでDockerのpostgres利用することにして、簡単にMakefileを用意します
$ docker run --name go-pg -e POSTGRES_USER=root -e POSTGRES_PASSWORD=root -e POSTGRES_DB=test -p 5432:5432 -d postgres:12.4
init-db: @docker run --name go-pg -e POSTGRES_USER=root -e POSTGRES_PASSWORD=root -e POSTGRES_DB=test -p 5432:5432 -d postgres:12.
Read more