Tracを動かしていたサーバーでもろもろ不都合がでてきたので、新しいサーバーへ移行することにしました。
稼動中のプロジェクトもあるため、チケットやWikiもそのまま新しいサーバーへ移行できるよう、手順をまとめてみました。
移行した環境は、「バグトラッキングシステム「Trac」インストール
」の中で書いたもので、DBにはPostgreSQLを使っています。
1. 現在のTracのバージョンを調べ、必要に応じてバージョンアップする
現在動かしているTracのバージョンが最新ではない場合、その古いバージョンのソースを見つけられないというようなことが考えられます。
また、TracのバージョンによってはDBのスキーマ構造が異なるため、異なるバージョンでデータを移行させると、うまく移行できない可能性もあったりします。
こういった場合、一旦現在の環境にてTracのバージョンアップを行い、その後で新しいサーバーへ移行するというような手順も考えたほうがよいでしょう。
参考記事: Tracの使い方 - Trac0.10からTrac0.11へのバージョンアップ -
現在と同じTracの環境を整えるためのソースが一式揃っているのであれば、それを新しいサーバー上で設定し、現行バージョンのままで移行させることも可能かもしれません。
この辺りは、状況に応じての判断が必要になります。
※ バージョン間の変更点は、Changelog にて確認できます。
2. 新サーバーでTracをインストールする
新しいサーバー上でTracをインストールします。
参考記事: バグトラッキングシステム「Trac」インストール
【補足】
上記の記事に書いている作業のうち、「2.1 DB作成」と「2.2 Subversionのリポジトリ作成」は、現在の環境と同様のDB名、リポジトリ名を作っておきます。
また、複数のプロジェクトを移行する場合、移行対象のDBやリポジトリはその数分だけ作成しておきます。
ここまでの作業で、新サーバー上でもTracが動く状態になったかと思います。
ということで、次に本格的にデータの移行を開始します。
3. DBの移行
次に、DB(PostgreSQL)を移行します。
現在Tracを動かしているサーバーにログインし、pg_dumpコマンドを使ってDBの内容をバックアップします。
参考記事: PostgreSQLバックアップ3分クッキング
$ pg_dump tracdb > tracdb.dmp
上記のバックアップしたファイルを新サーバー上に転送しておきます。
次に、新サーバー上で先ほどバックアップしたデータをインポートしますが、2.のTracインストール時にDBを作成し、スキーマが作られているため、一旦DBを削除し中のスキーマを全てクリアにしておきます。
$ dropdb tracdb
※ dropdb時にエラーが出る場合は、一度Apacheを停止させてDBへのコネクションをクローズした上で実行してみると
うまくいくかもしれません。
$ createdb tracdb
$ psql tracdb < tracdb.dmp
4. アップロードしたファイルや設定ファイルの移行
TracのチケットやWikiに添付しているファイルは、ローカルのディレクトリ内に保存されているため、そのディレクトリを丸ごと移行する必要があります。
添付ファイルは、下記のパスに保存されています。
/path/to/tracpj/attachments
※ 「/path/to/tracpj/」は移行対象のTracプロジェクトのディレクトリなので適宜読み替えてください。
上記のattachmentsディレクトリをtarなどで固めて、新サーバー上の同ディレクトリへ移します。
また、設定ファイルについても移行する必要があるので、同様に新サーバーに移行します。
設定ファイルのパスは、下記になっています。
/path/to/tracpj/conf
5. SVNの移行
リポジトリブラウザで使われる、SVNの移行を行います。
現在Tracを動かしているサーバーにログインし、SVNのリポジトリをバックアップします。
# svnadmin dump /path/to/svn/tracproject/ > tracproject.dmp
次に、上記ファイルを新サーバー上に転送し、リポジトリをインポートします。
# svnadmin load /path/to/svn/tracproject/ < tracproject.dmp
これでTracのサーバー移行は、一通り完了です。
複数のプロジェクトを運用している場合は、「3. DBの移行」から「5. SVNの移行」までをプロジェクトの数だけ作業する必要があります。
最後にApacheを再起動かけて、新しいサーバーの方にアクセスしてみましょう。
おまけ - サーバー移行時のエラー対処法 -
Trac detected an internal error: SubversionException: ("Can't open file '/home/svn/tracproject/db/uuid': Permission denied", 13)
5.のSVNの移行をrootユーザーで実行したため、上記ファイルの所有者がrootユーザーになっていました。
本来の適切なパーミッションと所有者(インストール時に設定したユーザー)に変更することで解決できました。
[PR]アイルのホスティングサービス 月額945円~(税込)
[PR]SSLサーバ証明書なら[ドメインキーパー]◆VeriSign/GlobalSign/他取り扱い