Changes between Version 1 and Version 2 of TracUpgrade


Ignore:
Timestamp:
09/18/14 10:48:12 (5 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TracUpgrade

    v1 v2  
    11= アップグレードの説明 = #UpgradeInstructions 
    22[[TracGuideToc]] 
    3  
    4 [TracEnvironment Trac Environment] をアップグレードする前に Trac-0.11 が使用可能になっている必要があります。このドキュメントでは TracEnvironment をアップグレードするのに必要な手順を説明します。 
    5  
    6 特に指示がない限り、マイナーバージョンのリリース時には TracEnvironment のアップグレードは必要ありません。 
     3[[PageOutline(2-3,,inline,unnumbered)]] 
    74 
    85== 一般的な手順 == #Instructions 
    96 
    10 通常、 Trac を新しいバージョンにアップグレードするときに、 4 ステップを踏まなければなりません: 
     7通常、 Trac を新しいバージョンにアップグレードするときに、 7 ステップを踏まなければなりません:  
    118 
    12 === Trac のコードを更新する === #UpdatetheTracCode 
     9=== 1. サーバーをオフラインにする === #Bringyourserveroff-line 
     10 
     11サーバー起動中にアップデートを行うのはやめてください。パッケージの一部をメモリにキャッシュしているかもしれませんし、コードのアップデートによって内部エラーを引き起こす可能性があります。 
     12 
     13=== 2. Trac のコードを更新する === #UpdatetheTracCode 
    1314 
    1415TracInstall または、あなたの OS に合った方法で新しいバージョンの Trac を取得してください。 
    1516 
    16 手で (OS 特有でない) アップグレードをするのであれば、インストールを実行する前に起動中の Trac サーバを停止してください。 "ホット" アップグレードは問題を生じることが多いです。特に Windows では出来ないと考えてください ([http://trac.edgewall.org/ticket/7265 #7265])。 
     17`easy_install` を使って、バージョン 0.11 の Trac をインストールした場合は、 Trac のアップグレードにも `easy_install` を使うのが最も簡単な方法でしょう: 
     18 
     19{{{ 
     20# easy_install --upgrade Trac==0.12 
     21}}} 
     22 
     23手動で (OS 特有でない) アップグレードをするのであれば、インストールを実行する前に起動中の Trac サーバを停止してください。 "ホット" アップグレードは問題を生じることが多いです。特に Windows では出来ないと考えてください ([http://trac.edgewall.org/ticket/7265 本家チケット 7265])。 
    1724 
    1825すでに存在する Trac のコードを削除するには、 Python の `lib/site-packages` ディレクトリから `trac` ディレクトリか、 Trac の .egg の古いバージョンを削除します。 
    1926site-packages ディレクトリの位置は OS のシステム、および Python のインストールパスにより異なりますが、一般的には以下の位置にあります: 
    20  * Linux を使用している場合: /usr/lib/python2.X/site-packages 
    21  * Windows を使用している場合: C:\Python2.X\lib\site-packages 
    22  * MacOSX を使用している場合: /Library/Python/2.X/site-packages 
     27 * Linux の場合: `/usr/lib/python2.X/site-packages` 
     28 * Windows の場合: `C:\Python2.X\lib\site-packages` 
     29 * MacOSX の場合: `/Library/Python/2.X/site-packages` 
    2330 
    2431また、 `share/trac` (正確な位置はプラットフォームに依存しますが一般的にはこの位置です。) ディレクトリ内の `cgi-bin`, `htdocs`, `templates`, `wiki-default` といったディレクトリを削除してもかまいません。 (訳注: 0.11 では、これらのディレクトリは `site-packages/trac` の配下に移動しています) 
     
    2633このクリーンアップは必須ではありませんが、あとでトラブルシュートを行う場合の切り分けが容易になります。すでに使われていない前のリリースのコードやテンプレートを見るなどという時間の浪費をしたくないのであれば、削除しておく方が楽です。もちろん、ファイルを削除する前にバックアップを作成する方が良いでしょう。 
    2734 
    28 webadmin plugin をインストールしていた場合は、アンインストールしてください。今や webadmin plugin は Trac コードベースの一部です。 
     35=== 3. Trac Environment をアップグレードする === #UpgradetheTracEnvironment 
    2936 
    30 === TracEnvironment をアップグレードする === #UpgradetheTracEnvironment 
     37Environment のアップグレードは、マイナーバージョンアップに特別な注意書きがない限り、不要です。  
    3138 
    3239アップグレードした Trac がロードされると、アップグレードする必要があるインスタンスが表示されます。アップグレードはオートメーションされたスクリプトを手で実行します。これらのスクリプトでは [TracAdmin trac-admin] を使用します。 
     
    3744このコマンドはもし TracEnvironment がすでに最新の状態になっているときは、何もしません。 
    3845 
    39 Note: PostgreSQL データベース (訳注: MySQL も) を使用している場合、このコマンドは「 Environment のバックアップは SQLite を使っているときしか出来ない」というメッセージを出力して失敗します。リポジトリとデータベースのバックアップは手動で行う必要があります。その後、アップグレードを行うために次のコマンドを実行してください: 
     46Note: データベースのバックアップはアップグレード時に自動で行われます。 
     47この機能は最近の更新で、データベースバックエンドに PostgreSQL や MySQL を使用している場合にも対応しましたが、失敗してしまう場合は手動でバックアップしてください。その後、バックアップをスキップしてアップグレードを行うために、下記のコマンドを実行してください: 
    4048{{{ 
    4149trac-admin /path/to/projenv upgrade --no-backup 
    4250}}} 
    4351 
    44 カスタム CSS スタイルを使用していたり、 TracEnvironment の templates ディレクトリテンプレートを変更している場合、 Genshi のやり方にコンバートする必要があります。スタイルシートを使用し続けたい場合、 TracInterfaceCustomization#SiteAppearance の手順を読んでください。 
    45  
    46 === Trac ドキュメントを更新する === #UpdatetheTracDocumentation 
     52=== 4. Trac ドキュメントを更新する === #UpdatetheTracDocumentation 
    4753 
    4854すべての [TracEnvironment Trac Environment] で、インストールされたバージョンの Trac ドキュメントのコピーを含んでいます。新しくインストールした Trac のドキュメントと同期を取りたいでしょう。 [TracAdmin trac-admin] がドキュメントを更新するコマンドを提供しています: 
     
    5157}}} 
    5258 
    53 当然このプロシージャはあなたの `WikiStart` ページ (訳注: `InterMapText` も) をまったく変更せず、そのままに残しておきます。 
     59このプロシージャはあなたの `WikiStart` ページ (訳注: `InterMapText` も) をまったく変更せず、そのままに残しておきます。 
    5460 
    55 === サイトテンプレート === #SiteTemplates 
    56 0.11 でテンプレートエンジンが変更されました。 TracInterfaceCustomization を参照してください。 
    5761 
    58 === Trac マクロプラグイン === #TracMacrosPlugins 
    59 !ClearSilver と HDF が使用されなくなったことで、古いスタイルの Wiki マクロ は使用できなくなります。そのため Trac マクロを適応させる必要があるでしょう; 新しいスタイルのマクロに変更する必要があれば WikiMacros を参照してください。新しいスタイルにコンバートした後、配置するディレクトリは wiki-macros ではなく、 plugins を使用してください。 wiki-macros ディレクトリからマクロやプラグインを探すことはもうありません。 
     62=== 5. 静的リソースをリフレッシュする === #a5.Refreshstaticresources 
    6063 
    61 === CGI 利用者向けの注意 === #ForCGIusers 
     64もし、静的リソースを直接配布できる ( URL `/chrome/` を使用してアクセス) ようにウェブサーバをセットアップしていたら、同じくコマンドを使用してそれらをリフレッシュする必要があります: 
     65{{{ 
     66trac-admin /path/to/env deploy /deploy/path 
     67}}} 
     68このコマンドは、新しい Trac のバージョンとそのプラグインから `/deploy/path` に静的リソースと CGI スクリプト (`trac.wsgi`, など) を抽出します。 
    6269 
    63 CGI で Trac を起動している場合、以下のコマンドを実行して trac.cgi ファイルを取得してください: 
     70いくつかのウェブブラウザ (IE, Opera) は、 CSS や Javascript ファイルを強引にキャッシュしてしまうので、ユーザにはこれらのブラウザのキャッシュの中身を手動で削除するために強制的に更新すること (`<F5>`) を十分行うように指示したほうがいいかもしれません。 
     71{{{#!comment 
     72Remove above note once #9936 is fixed. 
     73}}} 
     74 
     75=== 6. 特定の Trac バージョンでの特記事項 === #a6.StepsspecifictoagivenTracversion 
     76==== Trac 0.11 から Trac 0.12 にアップグレードする ==== #UpgradingfromTrac0.11toTrac0.12 
     77 
     78===== Python 2.3 サポート ===== #Python2.3nolongersupported 
     79現在 Python 2.4 以降 をサポートします。 
     80 
     81===== SQLite v3.x ===== #SQLitev3.xrequired 
     82SQLite v2.x のサポートは終了しました。もしいまだに Trac で SQLite v2.x のデータベースを使用しているようならば、まず最初に SQLite v3.x に変換する必要があります。詳細は [http://trac.edgewall.org/wiki/PySqlite#UpgradingSQLitefrom2.xto3.x] を参照して下さい。 
     83 
     84===== [http://trac.edgewall.org/wiki/PySqlite PySqlite] 2 ===== #PySqlite2required 
     85[http://trac.edgewall.org/wiki/PySqlite PySqlite] 1.1.x のサポートは終了しました。可能であれば、バージョン 2.5.5 以降のバージョンをインストールして下さい。 (下記 [#Tracdatabaseupgrade Trac データベースのアップグレード] を参照して下さい。) 
     86 
     87===== 複数のリポジトリのサポート===== #MultipleRepositorySupport 
     88最新のバージョンでは複数リポジトリの取り扱いをサポートしています。Trac に複数のリポジトリを追加する予定であるならば、今では複数のリポジトリを扱えるようになっています。詳細については、 [TracRepositoryAdmin#Migration 単一リポジトリからの移行手順] を参照して下さい。 
     89 
     90もし単一のリポジトリでの運用を行なっていたとしてもこの手順は興味深いものとなるかもしれません。なぜなら、この方法によってリクエスト毎に発生する潜在的に負荷の高い再同期のチェックを避けることができるからです。 
     91 
     92===== Trac Environment とソースコードリポジトリの再同期 ===== #ResynchronizetheTracEnvironmentAgainsttheSourceCodeRepository 
     93 
     94Trac でソースコードをブラウズしているときに "[http://trac.edgewall.org/ticket/6120 リポジトリにチェンジセット ??? が存在しません]" のようなエラーが出る場合は、それぞれの [TracEnvironment Trac environment] のソースコードリポジトリと再同期をする必要があります。 
     95 
     96{{{ 
     97trac-admin /path/to/projenv repository resync '*' 
     98}}} 
     99 
     100===== 向上したリポジトリの再同期 ===== #Improvedrepositorysynchronization  
     101複数のリポジトリをサポートするのに加えて、今では Trac と リポジトリの同期でより効果的な方法があります。 
     102 
     103バージョン 0.11 と同様に post-comit フックを使用した同期方法を続けることもできますが、[TracRepositoryAdmin#Synchronization リポジトリの同期方法] や [TracRepositoryAdmin#ExplicitSync 明示的な同期] に書かれている方法の方が、より効果的な同期を行なうことができ、多かれ少なかれ、複数のリポジトリを扱う際に必須となります。 
     104 
     105Note: もし、 `trac-post-commit-hook` を使用していたならば、上記を参照して、新しいフックに ''アップグレードすることを強くお勧めします'' 。なぜなら、古いフックはデフォルトのリポジトリ以外では動きません。そしてこの場合、適切な通知のトリガーとなりません。 
     106 
     107===== Authz のパーミッションチェック ===== #Authzpermissionchecking 
     108authz のパーミッションチェックが粒度の細かいパーミッションポリシーとしてマイグレートされました。もし authz パーミッションを使用しているならば、 ( `[trac] authz_file` や `authz_module_name` を参照)、 `[trac] permission_policies` で定義するパーミッションポリシーの先頭に、 `AuthzSourcePolicy` を追加しなければなりません。また、グローバルのパーミッション設定から `BROWSER_VIEW`, `CHANGESET_VIEW`, `FILE_VIEW`, `LOG_VIEW` を削除しなければなりません (`trac-admin $ENV permission remove` コマンドまたは、管理パネルの "権限" から削除されます。) 
     109 
     110==== マイクロ秒のタイムスタンプ ==== #Microsecondtimestamps 
     111データベースのテーブルにある全てのタイムスタンプ (セッションテーブルは除く) は "エポックからの秒数" から "エポックからのマイクロ秒数" へ値を変更しました。この変更はカスタムレポートを除いて、ほとんどのユーザは意識せずにすむはずです。レポートで計算に日付/時刻カラムを使用するような場合 (例えば、`datetime()`に渡す場合)、データベースから取り出した値を 1,000,000 で割る必要があります。同様に、もしレポートで日付/時刻と表示される計算された値 (カラム名が "time", "datetime", "changetime", "date", "created" や "modified") をマイクロ秒のタイムスタンプで用いる必要がある場合には、先の計算を1,000,000倍して下さい。 
     112 
     113==== Trac 0.10 から Trac 0.11 へのアップグレード ==== #UpgradingfromTrac0.10toTrac0.11 
     114===== テンプレート と スタイルシート ===== #SiteTemplatesandStyles 
     115テンプレートエンジンが Trac 0.11 から Genshi に変わりました。詳細については、 TracInterfaceCustomization を参照して下さい。 
     116 
     117もし、TracEnvironment の `templates` ディレクトリの中のカスタマイズされた CSS や 修正したテンプレートを使用しているならば、 Genshi のスタイルに変換する必要があります。カスタマイズしたスタイルシートを使い続けるためには、[TracInterfaceCustomization#SiteAppearance サイトの外観] の手順に従ってください。 
     118 
     119===== Trac マクロプラグイン ===== #TracMacrosPlugins 
     120[http://trac.edgewall.org/wiki/ClearSilver ClearSilver] と HDF が使用されなくなったことで、古いスタイルの Wiki マクロ は使用できなくなります。そのため Trac マクロを適応させる必要があるでしょう; 新しいスタイルのマクロに変更する必要があれば WikiMacros を参照してください。新しいスタイルにコンバートした後、配置するディレクトリは wiki-macros ではなく、 plugins を使用してください。 wiki-macros ディレクトリからマクロやプラグインを探すことはもうありません。 
     121 
     122===== FCGI/WSGI/CGI を使用する場合 ===== #ForFCGIWSGICGIusers 
     123CGI で Trac を起動している場合、以下のコマンドを実行して trac.*gi ファイルを取得してください: 
    64124{{{ 
    65125trac-admin /path/to/env deploy /deploy/directory/path 
     
    68128このコマンドでは、デプロイ用ディレクトリを作成します。デプロイ用ディレクトリには `cgi-bin` と `htdocs` の二つのサブディレクトリが含まれています。 Apache の `httpd.conf` を新しい `trac.cgi` と `htdocs` の場所に更新してください。 
    69129 
    70 === Web サーバを再起動する === #RestarttheWebServer 
     130===== Web アドミンプラグインのインテグレーション ===== 
     131もし、 Web アドミンプラグインをインストールしていたら、 Trac 0.11 以降より、 Trac のコードベースの一部となっているのでアンインストールできます。 
     132 
     133=== 7. Web サーバを再起動する === #RestarttheWebServer 
     134 
    71135[wiki:TracCgi CGI] 以外で起動している場合は、 Web サーバを再起動して、新しい Trac コードをリロードしてください。 
    72136 
     137== 既知の問題 == #KnownIssues 
    73138 
    74 == 既知の問題 == #KnownIssues 
    75 === 複数プロジェクトのホストに関して === #parentdir 
     139アップグレードの際、以下のことに留意してください。 
     140 
     141=== カスタマイズされたテンプレート === #CustomizedTemplates 
     142 
     143Trac は [TracEnvironment Environment] の `<env>/templates` フォルダ内、または [[TracIni#GlobalConfiguration| [inherit] templates_dir]] コンフィグに設定された共通のディレクトリ内にテンプレートのコピーを置くことによって、Genshi テンプレートのカスタマイズをサポートします。もしこの方法を採用している場合、テンプレートはおそらく今後も進化していくので、新しくリリースされた Trac (以前のバージョンでも) にアップグレードする際には、新しいテンプレートのコピーを手動で変更することが繰り返し必要になることに注意してください。diff は取っておいてください ;-) 
     144 
     145TracInterfaceCustomization を行うには、適切な `ITemplateStreamFilter` 変換を行うカスタムプラグインを書く方法が望ましいでしょう。この場合、通常 id の修正や CSS の `class` の変更を行わないため、変更が生じても影響をうけません。もし必要になるのであれば、[http://trac.edgewall.org/wiki/TracDev/ApiChanges TracDev/ApiChanges] ページにドキュメントが記載されるでしょう。 
     146 
     147=== !ZipImportError === #ZipImportError 
     148 
     149zip形式で圧縮されたパッケージの内部キャッシングにより、ディスク上でパッケージの内容が変わるたびに、メモリ内のzip インデックスは一致せず、回復不能な !ZipImportError が出ます。アップグレードをする前にメンテナンスのために予めサーバーを停止してください。 
     150詳細については、 [http://trac.edgewall.org/ticket/7014 本家チケット 7014] を参照して下さい。 
     151 
     152=== Wiki のアップグレード === #WikiUpgrade 
     153`trac-admin` は新しいバージョンでは存在しない以前のバージョンの Wiki ページを削除や移動しません。 
     154 
     155=== Trac データベースのアップグレード === #Tracdatabaseupgrade 
     156 
     157既知の問題として、!PySqlite のいくつかのバージョン (2.5.2-2.5.4) では、 trac-admin upgrade スクリプトを使用してデータベースを更新することができません。このエラーを避けるために、 sqlite の python バインディングのバージョンをより新しいものかより古いバージョンを使用することを推奨します。詳細については、 [http://trac.edgewall.org/ticket/9434 本家チケット 9434] を参照して下さい。 
     158 
     159=== 複数プロジェクトのホストに関して === #parentdir  
    76160複数のプロジェクトをホストした場合に、配下のプロジェクトのうち一つのプロジェクトで、プラグインの一つが動作していないとき、配下のすべてのプロジェクトではそのプラグインは動作していません。 
    77 === コアモジュールがロードされない === #somecoremoduleswontload 
    78 Windows で Python 2.3 を使用している場合、最初にアンインストールを行わずにアップグレードすると時々発生します。 
    79 いくつかのモジュールは、以前はキャピタライズされていましたが、小文字のみに変更されました (例えば、 trac/About.py が trac/about.py に変更されるなど)。以下のようなメッセージが Trac のログに出てくる場合: 
    80 {{{ 
    81 ERROR: Skipping "trac.about = trac.about": (can't import "No module named about") 
    82 }}} 
    83 `Lib/site-packages/trac` ディレクトリを削除してから、再インストールしてください。 
    84 === Wiki Upgrade === WikiUpgrade 
    85 `trac-admin` はページを削除しません。バージョン 0.10 では存在し、バージョン 0.11 では存在しないページはそのまま残ります。 (0.11 開発中に存在した !TracWikiMacros など) 
    86161 
    87 == データベースの変更 == #ChangingDatabaseBackend 
    88 === SQLite から PostgreSQL へ === #SQLitetoPostgreSQL 
     162== 関連するトピック == #Relatedtopics 
     163 
     164=== Python のアップグレード === #UpgradingPython 
     165 
     166Python を新しいバージョンにアップグレードすると Python パッケージの再インストールが必要となります: Trac も例外ではないですし、 [http://pypi.python.org/pypi/setuptools easy_install] も然りです (もし使用しているならばですが)。 Subversion を使用しているならば、 Subversion の Python のバインディングもアップグレードする必要があります。 
     167 
     168==== Windows と Python 2.6 ==== #WindowsandPython2.6 
     169 
     170もしあなたが、 !CollabNet の Subversion のパッケージを使用しているならばアンインストールする必要があるかもしれません。というのも、 [http://alagazam.net/ Alagazam] に気軽に使える Python バインディングがあるからです。 ([http://trac.edgewall.org/wiki/TracSubversion TracSubversion] 参照) いいニュースとして、調整なしに動作します。 
     171 
     172=== データベースの変更=== #ChangingDatabaseBackend 
     173==== SQLite から PostgresSQL へ ==== #SQLitetoPostgreSQL 
    89174 
    90175[http://trac-hacks.org trac-hacks.org] の [http://trac-hacks.org/wiki/SqliteToPgScript sqlite2pg] は SQLite のデータベースを PostgreSQL に移行するためのサポートをするスクリプトです。  
    91176 
    92 == より古いバージョン == #OlderVersions 
     177=== より古いバージョンからのアップグレード === #OlderVersions 
    93178 
    94 さらに前のバージョンからのアップグレードについては [http://trac.edgewall.org/wiki/0.10/TracUpgrade 0.10/TracUpgrade] をまずは参照してください。 
    95  
    96 Note: Trac 0.11 から Trac 0.10.4 や 0.10.5 にダウングレードするには、手作業が必要になります: 
    97 {{{ 
    98 $ sqlite3 db/trac.db "update system set value=20 where name='database_version'" 
    99 }}} 
    100 (あとで再度、正常にアップグレードすることができます) 
     179さらに前のバージョンからのアップグレードについては [trac:wiki:0.10/TracUpgrade#SpecificVersions] を最初に参照してください。 
    101180 
    102181-----