今日は trac な日

ずっと trac のインストールやら、
カスタマイズやら。
上手く動かないときに、
原因が python なのか svn なのか sqlite なのか、
なかなか切り分けが難しいのであった。

今日ハマったことと、解決できたこと。

●svn 絡みの trac のエラーについて

Oops...

Trac detected an internal error:

というのが出た。

内容はこんな感じ。
原因は、svn/projcect 以下を手動でいじっちゃったため<ダメじゃん(>_<)
リポジトリのディレクトリが違うと言われているが、文字列上は同じ。
どうやら変更時刻とか、その手のユニークな ID もくっつけて
内部的なリポジトリ名にしているくさい。

2007-**-** **:**:**,121 Trac[main] ERROR: The 'repository_dir' has changed, a 'trac-admin resync' operation is needed.
Traceback (most recent call last):
File "D:¥TracLight¥python¥Lib¥site-packages¥trac¥web¥main.py", line 406, in dispatch_request
dispatcher.dispatch(req)
File "D:¥TracLight¥python¥Lib¥site-packages¥trac¥web¥main.py", line 191, in dispatch
chosen_handler = self._pre_process_request(req, chosen_handler)
File "D:¥TracLight¥python¥Lib¥site-packages¥trac¥web¥main.py", line 263, in _pre_process_request
chosen_handler = f.pre_process_request(req, chosen_handler)
File "D:¥TracLight¥python¥Lib¥site-packages¥trac¥versioncontrol¥api.py", line 73, in pre_process_request
self.get_repository(req.authname).sync()
File "D:¥TracLight¥python¥Lib¥site-packages¥trac¥versioncontrol¥cache.py", line 82, in sync
raise TracError("The 'repository_dir' has changed, "
TracError: The 'repository_dir' has changed, a 'trac-admin resync' operation is needed.


'trac-admin resync'をやれと書いてあるが、そのままコピペしてもダメ。
http://trac.edgewall.org/ticket/5207にある通り、
プロジェクトを指定する。
trac-admin /path/to/trac/project resync

注意するのは、第1引数は、svn/project ではなくて、trac/project である点。
これでキャッシュが再構築される。

このページ、trad-admin だよ、と教えられた人が、
trad というタイポをそのまま入力して
ダメでしたー、と答えているのがおかしい(笑)

● sqlite の schema

レポート用クエリのカスタマイズの例は載っているのだが、
今回、はカラム自体もカスタマイズしたので、
そちらも検索したいわけである。
カスタムクエリで GUI から設定できるのだが、
これは保存ができないので、
保存できるクエリという形にしておきたい。
そのためには SQL を書かねばならんのだが、
schema がどこにも載ってない。
schema がわからないで、どうやって SQL 書くんだYO!?というわけで、
色々探してやっと見つけた。

DOS のコマンドプロンプトから
c:¥> sqlite trac.db
sqlite> .schema

こんだけ。
こんだけのことにものすごく彷徨ったよorz
まぁハマるというのは、概してそういうものなのだが。

SQL はあんまり書いたことがなくて、
インストール後のデフォルトで DB 作って TABLE 作って、
INSERT でぶち込んで、簡単に SELECT、みたいなことしか
やったことがない。
なわけで、実はよく知らない。
チューニングとかしないと、DB の良さはわからないんだろうけどね。

で、今回はカスタマイズしてカラムを増やしたので、
そいつらが別 DB に保存されており、
LEFT OUT JOIN をする必要があるらしい。
絵ではわかる。
□=□←□って感じでしょ。
でも自分で書いてみるとうまくいかないのね。
しばらく格闘する予定。

● Trac について

実際に使っているのは Windows 版 Trac だけ。
本当の Trac はインストールなんかが面倒くさいので、
「Trac月」(とらっくらいと)の方を使ってる。
本当に、ほんの数分で環境ができあがります。
Subversion との連携もばっちり。

中身が Python というのが、ちょっとカスタマイズしづらい感じだが、
普通に使う分には、カスタマイズは Web GUI からなので、
あまり困らないと思う。
[PR]
by xiaoxia | 2007-11-09 18:12 | ソフトウェア | Comments(0)

ダメ女プログラマ&主婦&腐女子&バイオリン弾き


by 小霞