« Ubuntu + PM-A900 + ダウンロードといくつかのコマンド = 印刷 + スキャン | トップページ | オープンソースカンファレンス2011 Shimane »

2011/08/23

Ubuntu + SQLite3 + Ruby = 簡易データベースの準備

これまでPostgreSQLやMySQLでデータベースを構築して、Webアプリケーションを作成してきたけど、なんだかいつもしっくりこない。RDBMSを使っても、結局はローカルでアクセスする場合がほとんどだし、それほどトラフィックがあるわけでもなく、速度も要求されない。

僕の場合は、その多くがテストか小規模のものなので、わざわざこれらRDBMSを使わなくても簡単に利用できるものがあればそれを使ってもかまわない。というよりむしろ、そちらの方が便利が良い。

ということで、代替手段を探してみるとSQLiteというのが一番良さそう。

では早速Ubuntuにインストールしてみる。

http://techno.hippy.jp/rorwiki/?HowtoUseSQLite

上記URLを参考にして下記コマンドでインストールしてみる。

$ sudo apt-get install libsqlite3-dev sqlite3 swig

他にもlibsqlite3-0をインストールするように書いてあったけど、locateしてみたら入ってそうだったので除外してます。

次にRuby用のモジュールをgemでインストール。

$ sudo gem1.8 install sqlite3-ruby

まずはSQLite3の動作確認。

$ sqlite3 sample.db
SQLite version 3.4.2
Enter "".help"" for instructions
sqlite> create table `test` (
...> id integer primary key,
...> name varchar(255)
...> );
sqlite> .schema
CREATE TABLE `test` (
id integer primary key,
name varchar(255)
);
sqlite> insert into test values(1,'test');
sqlite> insert into test values(2,'test');
sqlite> select * from test;
1|test
2|test
sqlite> .quit

おぉ、動いてる動いてる。
なかなか面白いですね。

では次にRubyからの接続確認。

$ irb
irb(main):001:0> require 'sqlite3'
LoadError: no such file to load -- sqlite3
from (irb):1:in `require'
from (irb):1
from :0

何?...ちょっと調べてみたらgemで入れたものはgemをrequireしないとだめなのね。
しかも、どこに行ってもActiverecordを使った接続の解説ばかり...なんだか気に入らない。

ということで、純粋なライブラリを入れ直し。

$ sudo apt-get install libsqlite3-ruby

またirbで接続確認。

$ irb
irb(main):001:0> require 'sqlite3'
=> true
irb(main):002:0> db=SQLite3::Database.new(""sample.db"")
=> #<SQLite3::Database:0xb7ac2878 @closed=false, @handle=#
irb(main):003:0> sql =<<EOFrnirb(main):004:0"" insert into test values(3, 'ddd');rnirb(main):005:0"" EOFrn=> ""insert into test values(3, 'ddd');""rnirb(main):006:0> db.execute(sql)
=> []
irb(main):007:0> exit

おおぉ、いきましたね。
では、次に入力した内容をコマンドラインで確認してみます。

$ sqlite3 sample.db
SQLite version 3.4.2
Enter "".help"" for instructions
sqlite> select * from test;
1|test
2|test
3|ddd
sqlite> .quit

パチパチパチ...
ということで、SQLiteが使えるようになりました。Accessみたいにデータをファイルでやりとりできるから僕にはかなり便利。

これから、MySQL用に作ったライブラリをSQLite3用に転用する作業をしてみようかな。

参考URL

http://sqlite-ruby.rubyforge.org/sqlite3/faq.html

|

« Ubuntu + PM-A900 + ダウンロードといくつかのコマンド = 印刷 + スキャン | トップページ | オープンソースカンファレンス2011 Shimane »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/79953/52545516

この記事へのトラックバック一覧です: Ubuntu + SQLite3 + Ruby = 簡易データベースの準備:

« Ubuntu + PM-A900 + ダウンロードといくつかのコマンド = 印刷 + スキャン | トップページ | オープンソースカンファレンス2011 Shimane »