データベースの用意は完成.こいつをRubyからいじってみる.
なんと,Rubyからデータベースを気にせず?プログラミングができるインタフェースが用意されているという.
そいつをインストールしてみる.

Ruby/DBIインストール for MacOSX(環境あんまり関係無いと思うが)

MySQLと,PostgreSQLを両方とも使ってみたいが,とりあえず,PostgreSQLで試してみる.
必要なモノは,SQLite,SQLの拡張モジュール?,Ruby/DBIの3つ.

  • [[SQLite>http://www.sqlite.org/]]
  • [[PostgresSQL用のモジュール>http://ruby.scripting.ca/postgres/]]
  • [[Ruby/DBI>http://rubyforge.org/projects/ruby-dbi/]]
  • これらを,この順番でインストール.

    SQLite

    こいつは,普通通り,

    >./configure
    >make
    >sudo make install
    

    でOK.

    PostgresSQL用のモジュール

    こいつは,Rubyのスクリプトでmakeの設定をする.

    >ruby extconf.rb --with-pgsql-dir=/usr/local/pgsql
    >make
    >sudo make install
    

    これで,OK.extconf.rbのオプションはググって参考にした.
     ※MacOSX Tiger 10.4.5,Ruby 1.8.4

    Ruby/DBI

    こいつもRubyのスクリプトで.

    >ruby setup.rb config --without=dbd_sybase
    >ruby setup.rb setup
    >sudo ruby setup.rb install
    

    これで,OK.上記と同様にextconf.rbのオプションはググって参考にした.

    テスト〜早速試す

    PostgresSQLからデータを読み込むスクリプト書いてみる.
    前のPostgreSQLの設定で試したデータベースをのぞいてみる.
    データベースはこんな感じ.

    test=# select * from human;
    name   | age
    ----------+-----
    hoge     |  20
    hogehoge |  27
    (2 rows)
    

    スクリプト.

    #!/usr/local/bin/ruby
    require "dbi"
    dbh = DBI.connect("DBI:Pg:test", 'username', 'passowrd')
    if(dbh)
    print "connected.?n"
    # select from datatable "human"
    sth = dbh.prepare("select * from human")
    sth.execute
    #  pirnt each row from db.
    while row=sth.fetch do
    print row,"?n"
    end
    dbh.disconnect
    else
    print "connection failed.?n"
    end
    

    これでOK.実行してみる.

    >ruby test.rb
    >connected.
    >hoge20
    >hogehoge27
    

    をを!できた.でも,なんだか要素がくっついている・・・.