Sequel - The Sequel Console

README より、Sequel にはデータベースへアクセスするための IRB が用意されてます。

コマンドラインからこんなふうにして実行すると、IRB のプロンプトで Sequel を使ってデータベースをさわることができるようです。

sequel sqlite://test.db # カレントディレクトリーにある test.db

ということで、ちょっとやってみました。

SQLite でローカルなデータベースをさわってみることにします。ちなみに、この時点でカレントディレクトリにはなにもありません。空です。

sequel コマンドを使ってデータベースに接続してみます。コマンドを実行すると test.db は存在しないので、SQLite がデーターベースのファイルを自動的に作成します。

$ sequel sqlite://test.db
Your database is stored in DB...
irb(main):001:0>

実行すると、こんな具合に irb のプロンプトになります。ちなみに、Sequel のデータベースオブジェクトは DB という変数に入っているそうです。

さて、ここでテーブルを作成してみましょう。さっきの Sequel - A Short Example からコピペして CREATE TABLE してみます。

irb(main):001:0> DB.create_table :items do
irb(main):002:1>   primary_key :id
irb(main):003:1>   column :name, :text
irb(main):004:1>   column :price, :float
irb(main):005:1> end
=> ["CREATE TABLE `items` (`id` integer PRIMARY KEY AUTOINCREMENT, `name` text, `price` float)"]

なるほど、こういう SQL に変換されるんですね。テーブルが作成されました。

さて、このテーブルにデータを入れてみましょう。これも、さっきの Sequel - A Short Example からコピペします。

irb(main):006:0> items = DB[:items]
=> #<Sequel::SQLite::Dataset: "SELECT * FROM `items`">
irb(main):007:0> items << {:name => 'abc', :price => rand * 100}
=> 1
irb(main):008:0> items << {:name => 'def', :price => rand * 100}
=> 2
irb(main):009:0> items << {:name => 'ghi', :price => rand * 100}
=> 3

こんな風に、データセットにデータをハッシュで指定して追加していくと INSERT されます。戻り値はおそらくプライマリーキーですね。

追加したデータを取得してみましょう。これも、さっきの Sequel - A Short Example からコピペです。

irb(main):010:0> items.reverse_order(:price).print
+--+----+----------------+
|id|name|price           |
+--+----+----------------+
| 3|ghi |         94.0507|
| 2|def |         48.4604|
| 1|abc |         12.9043|
+--+----+----------------+
=> nil

なるほどなるほど。データーベースに付属のシェルを使って SQL を入力する代わりに、Sequel と Ruby でコードを書くように作業できるというわけですね。

ということは、Sequel で作ったモデルの動作確認なんかに使えそうです。これは便利かも。


Sequel - Ruby の ORM (オブジェクトリレーショナルマッパー)


CategorySequel

ボンノウドットコム Wiki: Sequel - The Sequel Console (last edited 2009-01-23 10:47:22 by JunKikuchi)

このサイトに関するお問い合わせは kikuchi@bonnou.com までお願いします