2007年12月27日木曜日

CentOSで Rails 2.0.2 / SQLiteを使ってみる

Rails2.0になって少し仕様が変わったらしいのでメモを残しておく。
Rails 2.0のscaffoldを使ってみた - idesaku blogを参考に。(できるだけそのまま実行。)

2.0.2ではデフォルトのDBがSQLiteなので、SQLiteを使う場合のプロジェクト作成はDB指定無しでOK。

rails trial

SQLiteならdatabase.ymlの編集が要らない。これは試しに使うには楽だ。
cd trial
ruby script/generate scaffold person name:string age:integer

ここまでは順調。
rake db:migrate
エラー発生。
(in /tmp/rails_app/trial)
rake aborted!
no such file to load -- sqlite3
gemでsqlite3-rubyをインストール。(参考:【実践】RoR とAIRでデスクトップアプリを作る 4 - kajilog
gem install sqlite3-ruby
sqlite-ruby 1.2.1を選択すると「make: *** `sqlite3_api_wrap.o' に必要なターゲット `ruby.h' を make するルールがありません.」というエラーになる。
sqlite-ruby 1.2.0ならインストールできるが、これはmigrateができない。

調べた結果、sqlite-develをインストールするらしい。(参考: gem install sqlite3-ruby でエラー発生 (技術メモ)
("sqlite3-devel"でなくてよいのか?)
yum install sqlite-devel

これでsqlite-ruby 1.2.1がインストールできるようになった。migrateも無事にできた。


補足: SQliteにコマンドラインからアクセス
sqlite3のパラメータとして、アクセスしたいSQLiteのデータファイルのパスを渡す。
sqlite3 db/development.sqlite3
SQLiteから抜けるには[Ctrl + D]、または".exit"。

でもきちんと使うならSQLiteはきつい。Query BrowserのあるMySQLを使うだろう。


参考: sqlite: SQLite データベースと会話するプログラム

0 件のコメント:

ブログ アーカイブ

tags