Subversionのリポジトリを別のホストへ移行する作業を行ったので、方法を書き残します。
前提/要件
以下を前提/要件として解説します。
- ホスト OLD_HOST に /var/svn/PROJECT_A という現行のリポジトリがある
- ホスト NEW_HOST の /var/svn/PROJECT_A にリポジトリを移行したい
手順概要
Subversionにおけるリポジトリの移行には、Subversion の管理コマンド svnadmin を利用して、現行のリポジトリのダンプデータを出力し、そのダンプデータを基に新しいサーバーにリポジトリを復元させる必要があります。
今回の手順順序は以下の通りです。
- 現行のリポジトリのダンプデータを出力させる。
- (転送負荷を下げる為に)ダンプデータを圧縮させる。
- 圧縮したダンプデータを新しいサーバーに転送する。
- 圧縮されたダンプデータを解凍する。
- 新しいリポジトリにダンプデータを復元する。
手順
それでは、具体的なコマンドを記述していきます。
1. 現行のリポジトリのダンプデータを出力させる
$ svnadmin dump /var/svn/PROJECT_A > /tmp/svn_repository_PROJECT_A.dump
2. (転送負荷を下げる為に)ダンプデータを圧縮させる
サーバー間のファイル転送に時間がかかってしまう事を考慮し、ファイルを圧縮しておきます。 ここでは ZIP 形式で圧縮することとしました。
$ zip /tmp/svn_repository_PROJECT_A.dump.zip /tmp/svn_repository_PROJECT_A.dump
3. 圧縮したダンプデータを新しいサーバーに転送する
$ scp /tmp/svn_repository_PROJECT_A.dump user@NEW_HOST:/tmp/
4. 圧縮されたダンプデータを解凍する
$ unzip /tmp/svn_repository_PROJECT_A.dump.zip
5. 新しいリポジトリにダンプデータを復元する
$ svnadmin create /var/svn/PROJECT_A
$ svnadmin load /var/svn/PROJECT_A /tmp/svn_repository_PROJECT_A.dump
終わりに
Subversion のリポジトリを別のサーバーに移行する手順について説明しました。 svnadmin dump コマンドと svnadmin load コマンドが特にポイントですので覚えておきましょう。
※本記事は、Subversionリポジトリを別のサーバーに移行する を移稿し校正したものです。