Version 3 (modified by trac, 12 years ago) (diff) |
---|
Trac はプロジェクトのデータを保存するために、ディレクトリ構造とデータベースを使用します。このディレクトリを "Environment" と呼びます。
新しい Trac Environment を作成するには、 trac-admin の initenv を使用します:
$ trac-admin /path/to/myproject initenv
trac-admin はプロジェクトの名前とデータベースに接続するための文字列 (後で説明します) を尋ねてきます。
バージョン 0.9 以降、 Trac は SQLite と PostgreSQL データベースバックエンドの両方をサポートします。 MySQL のサポートは 0.10 で加えられました。 デフォルトでは SQLiLte を使用します。 (ほとんどのプロジェクトは SQLite で十分です)。データベース ファイルは Environment ディレクトリに保存されますので、 Environment の残りと共に容易に バックアップ することができます。
SQLite データベースに接続するための文字列は以下の通りです:
sqlite:db/trac.db
db/trac.db の箇所は Trac Environment のデータベースファイルへのパスを指します。
PostgreSQL や MySQL を代わりに使用する場合、異なる接続用文字列を 使用しなければなりません。 例えば PostgreSQL に接続するとき、 ユーザ名 johndoe でパスワード letmein で 同じマシンの trac と呼ばれるデータベースに接続するには以下のように指定します:
postgres://johndoe:letmein@localhost/trac
"/" 及び "@" はパスワードの一部として使用出来ないので注意してください
PostgreSQL がデフォルト以外のポート番号 (例えば、 9432) で起動しているときはこのようにします:
postgres://johndoe:letmein@localhost:9342/trac
UNIX ホストでは、 UNIX ソケットで接続するように設定できます。 この場合、環境変数 PGHOST に定義されたデフォルトソケットを使用します:
postgres://user:password@/database
ソケットを特定する場合はこうです:
postgres://user:password@/database?host=/path/to/socket/dir
PostgreSQL を使用するとき、 trac-admin initenv を実行する前に データベースを作成しなければいけません。
PostgreSQL の詳細設定の方法については PostgreSQL ドキュメント を参照してください。 下記は tracuser という名のデータベースユーザ及び trac という名のデータベースを作成します。
createuser -U postgres -E -P tracuser createdb -U postgres -O tracuser -E UTF8 trac
createuser を実行する時、'tracuser' のパスワードの入力を促されます。この新しいユーザはスーパーユーザではないので、他のデータベースを作ったり、他の role (訳注: PostgreSQL でのユーザ) を作る権限を与えられていません。これらの権限は trac のインスタンスを実行する為には必要ではありません。ユーザにパスワードを付与したくない場合、 createuser コマンドから -P と -E オプションを取り除いてください。また、データベースが UTF8 で作成する必要があることに注意してください。 LATIN1 のエンコードが原因のエラーを引き起こします。 SQL_ASCII でも同様です。
デフォルト設定 (debian) の下では、 postgres ユーザとして createuser と createdb スクリプトを実行してください。 例えば:
sudo su - postgres -c 'createuser -U postgres -S -D -R -E -P tracuser' sudo su - postgres -c 'createdb -U postgres -O tracuser -E UTF8 trac'
Trac はデフォルトで public スキーマを使用しますが、明示的に違うスキーマを指定することができます:
postgres://user:pass@server/database?schema=yourschemaname
MySQL を代わりに使用したい場合、違う接続文字列を使用します。 例えば、同じマシンにある trac という MySQL データベースに、 johndoe というユーザでパスワード letmein で接続する場合の MySQL の接続文字列は次の通りです:
mysql://johndoe:letmein@localhost:3306/trac
0.12 以降のバージョンでは、一つの Environment から複数のリポジトリに接続できるようになりました。 Environment からリポジトリに接続する方法は沢山あるので、詳細は TracRepositoryAdmin を参照してください。左記のページではリポジトリごとに設定する項目 (type, url, description など) について詳しく解説されています。
Trac 0.12 の trac-admin コマンドでは、接続するリポジトリの指定が必須ではなくなりました。デフォルトでは Trac はソースコードリポジトリへの接続を作成せず、メインナビゲーションの リポジトリブラウザ (英語版では Browse Source) も表示されなくなります。 ロードされている trac.versioncontrol.* コンポーネントを完全に無効化するには下記設定を行ってください
[components] trac.versioncontrol.* = disabled
バージョン管理システムによっては、リポジトリへのパスだけではなく、リポジトリ内の scope を設定することもできます。 Trac はそのスコープ以下に限定したファイルとチェンジセットに関連する情報を表示します。 Trac のバックエンドに Subversion を 使う場合は、この機能を利用できます; 他のリポジトリシステムについては、対応するプラグインのドキュメントで確認して下さい。
デフォルトリポジトリのみで構成される Subversion リポジトリの設定の一例です:
[trac] repository_type = svn repository_dir = /path/to/your/repository
スコープを絞った Subversion リポジトリの設定の一例です:
[trac] repository_type = svn repository_dir = /path/to/your/repository/scope/within/repos
プロジェクト Environment のディレクトリは通常、以下に示すファイルとディレクトリから成り立ちます。
要注意: Trac Environment のディレクトリとソースコードリポジトリのディレクトリを一緒にしないで下さい。
初心者がよくやる誤りです。 上記のディレクトリ構造は Subversion リポジトリのディレクトリ構造をざっくりと真似ているだけです。 全く関連はありませんので、2つは同じ場所においては いけません。
See also: TracAdmin, TracBackup, TracIni, TracGuide