参加者は +Takashi Yokoyama さん、+Takanobu Hagino さん、私の3名でした。
今回はdatabase/sqlパッケージとlib/pqドライバーを使ってPostgreSQLへのアクセスを試みました。
数あるGoのデータベースドライバーの中からpqが選択されたのは、ピュアGoで地雷も少ないだろうという理由からでした。
私にとって初のPostgreSQLでしたので、brewでインストールしてから参加しました。
$ brew install postgresql
開始早々、今回も簡単に「プチPostgreSQL勉強会」を開催して頂きました。
# すぐに本題のGoに入れず、すみませんm(__)m > メンバー各位
(1) ホームディレクトリー配下に「data」という名前でデータベース情報を格納するディレクトリーを作成。
$ cd
$ mkdir data
(2) PosgreSQLのコマンドパスにカレントディレクトリーを移動。
# 早く本題に入りたかったので、.bashrcなどへの追加作業は後回しに。
$ cd /usr/local/Cellar/postgresql/9.3.1/bin/
(3) データベースクラスターを作成。
$ ./initdb ~/data/
(4) データベースサーバーを起動。
(5) 「sampledb」という名前でデータベースを作成。
(6) 「sampledb」データベースが作成されていることを確認。
$ ./psql -l
List of databases
(8) テーブル定義ファイル「table.sql」を実行してテーブルを作成。
pqドライバーは go get コマンドでインストールしました。
ちなみに、今回は「名物ビーフストロガノフ」でした!
[2013.11.24] 萩野さんのブログへのリンクを追加しました。
$ ./pg_ctl -D ~/data/ start
$ ./createdb sampledb
(6) 「sampledb」データベースが作成されていることを確認。
$ ./psql -l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+-------+----------+-------------+-------------+-------------------
postgres | usrid | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 |
sampledb | usrid | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 |
-----------+-------+----------+-------------+-------------+-------------------
postgres | usrid | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 |
sampledb | usrid | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 |
(7) 「sampledb」に接続。
$ ./psql -d sampledb
$ ./psql -d sampledb
(8) テーブル定義ファイル「table.sql」を実行してテーブルを作成。
sampledb=# \i $GOPATH/src/golangcafe/sample.com/dbtest/table.sql
CREATE TABLE
CREATE TABLE
INSERT 0 1
INSERT 0 1
pqドライバーは go get コマンドでインストールしました。
$ go get github.com/lib/pq
今回のサンプルも横山さんのGitHubから取得して使用しました。
# お忙しい中、毎回、ありがとうございますm(__)m > 横山さん
$ cd $GOPATH/src
$ git clone https://github.com/tyokoyama/golangcafe
今回のサンプルも横山さんのGitHubから取得して使用しました。
# お忙しい中、毎回、ありがとうございますm(__)m > 横山さん
$ cd $GOPATH/src
$ git clone https://github.com/tyokoyama/golangcafe
テストファイル「db_test.go」にて、データベース接続のためのユーザー名を書き換えて、
$ vi golangcafe/sample.com/dbtest/db_test.go
10 func getConnection() (*sql.DB, error) {
$ vi golangcafe/sample.com/dbtest/db_test.go
10 func getConnection() (*sql.DB, error) {
11 // return sql.Open("postgres", "user=gdgchugoku dbname=sampledb sslmode=verify-full")
12 return sql.Open("postgres", "user=[ユーザー名] dbname=sampledb sslmode=disable")
13 }
go test コマンドでテストを実行して、接続を確認しました。
$ go test golangcafe/sample.com/dbtest/db_test.go
ok command-line-arguments 0.056s
今回は、横山さんが目指していた本来の姿である「もくもく会」状態となり、途中からツイートもなくなる程に全員がのめり込んでコーディングを行っていました。
個人的には、課題であった insert, update, delete 文の実装までは行えましたが、内容を理解するまでには至らなかったので、公開される他メンバーのブログを拝見しつつ復習させて頂きますm(__)m
今回は、横山さんが目指していた本来の姿である「もくもく会」状態となり、途中からツイートもなくなる程に全員がのめり込んでコーディングを行っていました。
今回も(!?)肝心のdatabase/sqlでのデータベースアクセスについては書けておりませんので、詳細&技術な内容につきましては、横山さんや萩野さんのブログをご覧下さい。
- Golang Cafe #4を開催しました。 - T.Yokoyamaのブログ
- Golang Cafe #4 まとめ データベースアクセス(PostgreSQL編) - taknb2nchのメモ
- Golang Cafe #4 - Togetter
ちなみに、今回は「名物ビーフストロガノフ」でした!
[2013.11.24] 萩野さんのブログへのリンクを追加しました。
0 件のコメント:
コメントを投稿