Tracのプロジェクトは結構いろんなところへ持っていける。

基本的にDBもSQLiteを使っているので、特別なことをしていない限りほとんどの環境へそのまま持っていける。

特別なことの例

  • Trac PluginをTrac Projectのpluginsの下ではなく、Tracの環境へ突っ込んでいる。

移植先の環境へ持っていって、

trac-admin <Path> upgrade

とやってあげるとまぁまぁ動いてくれる。

TracのDBを覗いてみよう。

TracのDBにはSQLite3を使っている。SQLite3自体はC,C++で書かれているらしい。配布元では各環境用のバイナリを用意してくれている。

http://www.sqlite.org/download.html

Windows用のバイナリを落として解凍して驚いた。sqlite3.exeしかない。

ほかはなーんもない。その中にはドキュメントもない。で、実行してみると設定いらずでDBができてしまう。実行はこんな感じ

sqlite3 db.filename

こうするとSQLiteのコンソールが開いてくれる。このお手軽さはサーバーを立てないとならないイメージを持っていた他のDBとは一線を隔してますね。trac.iniにDBの設定があるけれども、一行だもん。

database = sqlite:db/trac.db

Javaの組込みDBであるHSQLDBとかも使ったけれども、いくらJARで配布されているからって、クラスパスを設定したりしなきゃなんなかったもんね。JDBCのドライバ設定も一行っちゃ一行だけんども、
こっだけ簡単にコンソールはなかった気がするよ。SQLite内でのコマンドは".help"で出てくる。

さて、TracのDBですが、中身は案外簡単なのね。Wikiのテーブルなんて一つしか見当たらないよ。この中でバージョン管理もされているなんてできるもんなんだね。おいらだったら絶対へんな風にテーブル分けているだろうね。この割り切りのよさにしびれたよ。