= アップグレードの説明 = #UpgradeInstructions
[[TracGuideToc]]

== 一般的な手順 == #Instructions

通常、 Trac を新しいバージョンにアップグレードするときに、 5 ステップを踏まなければなりません:

=== 1. Trac のコードを更新する === #UpdatetheTracCode

TracInstall または、あなたの OS に合った方法で新しいバージョンの Trac を取得してください。

{{{easy_install}}} を使って、最近の 0.11 のバージョンの Trac をインストールしていた場合は、最も簡単に Trac をアップグレードできます。

{{{
# easy_install --upgrade Trac
}}}

手で (OS 特有でない) アップグレードをするのであれば、インストールを実行する前に起動中の Trac サーバを停止してください。 "ホット" アップグレードは問題を生じることが多いです。特に Windows では出来ないと考えてください ([http://trac.edgewall.org/ticket/7265 #7265])。

すでに存在する Trac のコードを削除するには、 Python の `lib/site-packages` ディレクトリから `trac` ディレクトリか、 Trac の .egg の古いバージョンを削除します。
site-packages ディレクトリの位置は OS のシステム、および Python のインストールパスにより異なりますが、一般的には以下の位置にあります:
 * Linux の場合: /usr/lib/python2.X/site-packages
 * Windows の場合: C:\Python2.X\lib\site-packages
 * MacOSX の場合: /Library/Python/2.X/site-packages

また、 `share/trac` (正確な位置はプラットフォームに依存しますが一般的にはこの位置です。) ディレクトリ内の `cgi-bin`, `htdocs`, `templates`, `wiki-default` といったディレクトリを削除してもかまいません。 (訳注: 0.11 では、これらのディレクトリは `site-packages/trac` の配下に移動しています)

このクリーンアップは必須ではありませんが、あとでトラブルシュートを行う場合の切り分けが容易になります。すでに使われていない前のリリースのコードやテンプレートを見るなどという時間の浪費をしたくないのであれば、削除しておく方が楽です。もちろん、ファイルを削除する前にバックアップを作成する方が良いでしょう。

webadmin plugin をインストールしていた場合は、アンインストールしてください。今や webadmin plugin は Trac コードベースの一部です。

=== 2. TracEnvironment をアップグレードする === #UpgradetheTracEnvironment

Environment のアップグレードは、マイナーバージョンアップに特別な注意書きがない限り、不要です。

アップグレードした Trac がロードされると、アップグレードする必要があるインスタンスが表示されます。アップグレードはオートメーションされたスクリプトを手で実行します。これらのスクリプトでは [TracAdmin trac-admin] を使用します。
{{{
trac-admin /path/to/projenv upgrade
}}}

このコマンドはもし TracEnvironment がすでに最新の状態になっているときは、何もしません。

Note: データベースのバックアップはアップグレード時に自動で行われます。
この機能は最近の更新で、データベースバックエンドに PostgreSQL や MySQL を使用している場合にも対応しましたが、失敗してしまう場合は手動でバックアップしてください。その後、バックアップをスキップしてアップグレードを行うために、下記のコマンドを実行してください:
{{{
trac-admin /path/to/projenv upgrade --no-backup
}}}

カスタム CSS スタイルを使用していたり、 TracEnvironment の templates ディレクトリテンプレートを変更している場合、 Genshi のやり方にコンバートする必要があります。スタイルシートを使用し続けたい場合、 TracInterfaceCustomization#SiteAppearance の手順を読んでください。

=== 3. Trac ドキュメントを更新する === #UpdatetheTracDocumentation

すべての [TracEnvironment Trac Environment] で、インストールされたバージョンの Trac ドキュメントのコピーを含んでいます。新しくインストールした Trac のドキュメントと同期を取りたいでしょう。 [TracAdmin trac-admin] がドキュメントを更新するコマンドを提供しています:
{{{
trac-admin /path/to/projenv wiki upgrade
}}}

当然このプロシージャはあなたの `WikiStart` ページ (訳注: `InterMapText` も) をまったく変更せず、そのままに残しておきます。

=== 4. Trac Environment とソースコードリポジトリの再同期 === #a4.ResynchronizetheTracEnvironmentAgainsttheSourceCodeRepository

Trac でソースコードをブラウズしているときに "[http://trac.edgewall.org/ticket/6120 リポジトリにチェンジセット ??? が存在しません]" のようなエラーが出る場合は、それぞれの [TracEnvironment Trac environment] のソースコードリポジトリと再同期をする必要があります。

{{{
trac-admin /path/to/projenv resync
}}}

=== 5. 特定の Trac バージョンでの特記事項 === #a5.StepsspecifictoagivenTracversion
==== Trac 0.11 より古いバージョンからアップグレードする ==== #UpgradingtoTrac0.11
===== サイトテンプレート ===== #SiteTemplates
0.11 でテンプレートエンジンが変更されました。 TracInterfaceCustomization を参照してください。

===== Trac マクロプラグイン ===== #TracMacrosPlugins
!ClearSilver と HDF が使用されなくなったことで、古いスタイルの Wiki マクロ は使用できなくなります。そのため Trac マクロを適応させる必要があるでしょう; 新しいスタイルのマクロに変更する必要があれば WikiMacros を参照してください。新しいスタイルにコンバートした後、配置するディレクトリは wiki-macros ではなく、 plugins を使用してください。 wiki-macros ディレクトリからマクロやプラグインを探すことはもうありません。

===== FCGI/WSGI/CGI を使用する場合 ===== #ForFCGIWSGICGIusers
CGI で Trac を起動している場合、以下のコマンドを実行して trac.*gi ファイルを取得してください:
{{{
trac-admin /path/to/env deploy /deploy/directory/path
}}}

このコマンドでは、デプロイ用ディレクトリを作成します。デプロイ用ディレクトリには `cgi-bin` と `htdocs` の二つのサブディレクトリが含まれています。 Apache の `httpd.conf` を新しい `trac.cgi` と `htdocs` の場所に更新してください。

=== 6. Web サーバを再起動する === #RestarttheWebServer

[wiki:TracCgi CGI] 以外で起動している場合は、 Web サーバを再起動して、新しい Trac コードをリロードしてください。

== 既知の問題 == #KnownIssues

=== 複数プロジェクトのホストに関して === #parentdir
複数のプロジェクトをホストした場合に、配下のプロジェクトのうち一つのプロジェクトで、プラグインの一つが動作していないとき、配下のすべてのプロジェクトではそのプラグインは動作していません。

=== コアモジュールがロードされない === #somecoremoduleswontload
Windows で Python 2.3 を使用している場合、最初にアンインストールを行わずにアップグレードすると時々発生します。
いくつかのモジュールは、以前はキャピタライズされていましたが、小文字のみに変更されました (例えば、 trac/About.py が trac/about.py に変更されるなど)。以下のようなメッセージが Trac のログに出てくる場合:
{{{
ERROR: Skipping "trac.about = trac.about": (can't import "No module named about")
}}}
`Lib/site-packages/trac` ディレクトリを削除してから、再インストールしてください。

=== Wiki Upgrade === #WikiUpgrade
`trac-admin` は新しいバージョンでは存在しない以前のバージョンの Wiki ページを削除や移動しません。


== データベースの変更 == #ChangingDatabaseBackend
=== SQLite から PostgreSQL へ === #SQLitetoPostgreSQL

[http://trac-hacks.org trac-hacks.org] の [http://trac-hacks.org/wiki/SqliteToPgScript sqlite2pg] は SQLite のデータベースを PostgreSQL に移行するためのサポートをするスクリプトです。 

== より古いバージョン == #OlderVersions

さらに前のバージョンからのアップグレードについては [http://trac.edgewall.org/wiki/0.10/TracUpgrade 0.10/TracUpgrade] をまずは参照してください。

Note: Trac 0.11 から Trac 0.10.4 や 0.10.5 にダウングレードするには、手作業が必要になります:
{{{
$ sqlite3 db/trac.db "update system set value=20 where name='database_version'"
}}}
(あとで再度、正常にアップグレードすることができます)

-----
See also: TracGuide, TracInstall