小槌へ移行
経緯
今まで使っていた家計簿ソフト「みんなの家計簿」が OS を Snow Leopard にしてからすごく重くなり、とても使用できる状態ではなくなってしまった。使っていたバージョンは PPC 版だったので Intel Mac の上では Rosetta を使うのだが、それが重くなる原因かな(憶測)?Intel版はないかなと思い、配布元のサイトを訪れてみたら、なんと、開発中止に。一年以上続けた家計簿をここで止めるのも惜しいので、他のソフトがないか探してみた。
選択
条件としては、
- 無料であること
- いままでのデータを取り込むことができること
- ローカルで動作すること
- わかりやすいこと
これぐらい。重要なのは上二つ。
これらの条件を踏まえて我が家の次世代家計簿に選んだのが 「小槌」。2006 年の Drecom Award on Rails の大賞を受賞した家計簿ソフト。ちょっと家計簿の入力がわかりづらかったけど、Rails を使っているということで採用。
セットアップ
主なソフトのバージョン。
- Virtual Box 2.1.4 (Virtual Box上に環境を構築)
- Ubuntu 9.0.4
- Ruby 1.8.7
- Rails 2.2.2
- Apache 2.2.11
- Phusion Passenger 2.2.2
- SQLite 3.6.10
Rails と Apache の連携のしかたは Redmine.JP | Apache上でRuby on Railsアプリケーションを動かす/Passenger(mod_rails for Apache)の利用 を参考にした。
小槌 のソースは github から入手。コミットの番号は 4968ca56ac5d316e96e5cbec42ff95f06b7359b1 。README.rdoc に書かれていること以外にも幾つか手を入れた。
- app/controllers/application.rb
defined? メソッドの引数を括弧で囲む。
def set_ssl - if defined? KOZUCHI_SSL && KOZUCHI_SSL + if defined?(KOZUCHI_SSL) && KOZUCHI_SSL request.env["HTTPS"] = "on" end end
- app/views/〜.erb
Apache のログに「warning: don't put space before argument parentheses」と出力される箇所がいくつかあるので修正。
- public/.htaccess
Internal Server Error が発生するので .htaccess を削除。
- db/migrate/20090214200718_add_date_and_daily_seq_to_account_entries.rb
rake db:migrate 時に account_entries テーブルで Not Null 制約が付いカラムの初期値に NULL は使えない、というエラーが出るので初期値を設定。
- add_column :account_entries, :date, :date, :null => false - add_column :account_entries, :daily_seq, :integer, :null => false + add_column :account_entries, :date, :date, :default => '0000-00-00', :null => false + add_column :account_entries, :daily_seq, :integer, :default => 0, :null => false
データ移行
「みんなの家計簿」のデータはCSV変換機能を使ってエクスポートする。そのデータを「小槌」へ登録する。登録するまでの手順としては大きく分けて二つ。一つはエクスポートしたCSVファイルをインポートしやすい形式、2つのTSVファイルに変換する。もう一つは変換したファイルを読み込みDBに登録する。テーブルの解析にちょっと時間が掛かったけど、移行スクリプトは思っていたよりも簡単に書けた。
総括
気安くOSをアップグレードすると、思いもよらないところで苦労するはめになるので、気をつけるべし。