GitHub Enterprise Server ソースインスタンスを準備する
-
GitHub Enterprise Server ソースのサイト管理者であることを確認します。 これを行う最善の方法は、インスタンスに SSH 接続できることを確認することです。
-
GitHub Enterprise Server ソースインスタンス上での
repo
およびadmin:org
スコープを使用してアクセス トークンを生成する。 -
ダウンタイムを最小化するには、ソースインスタンスからエクスポートしたいリポジトリのリストを作成してください。 各行にそれぞれのリポジトリのURLをリストアップしたテキストファイルを使えば、複数のリポジトリをエクスポートに一度に追加できます。
GitHub Enterprise Server ソースリポジトリをエクスポートする
注: リポジトリをロックすると、リポジトリへのすべての書き込みアクセスができなくなります。 ロックされたリポジトリには、新しいTeamやコラボレータを関連づけることはできません。
トライアル実行をしているなら、リポジトリをロックする必要はありません。 使用中のリポジトリからデータを移行する場合、GitHub はリポジトリをロックすることを強くお勧めします。 詳しくは、「ghe-migrator について」を参照してください。
-
お使いの GitHub Enterprise Server インスタンス に SSH で接続します。 インスタンスが複数のノードで構成されている場合は (高可用性や geo レプリケーションが構成されている場合など)、プライマリ ノードに SSH 接続します。 クラスターを使用する場合は、任意のノードに SSH 接続できます。 HOSTNAME をインスタンスのホスト名、またはノードのホスト名または IP アドレスに置き換えます。 詳しくは、「管理シェル (SSH) にアクセスする」を参照してください。
Shell ssh -p 122 admin@HOSTNAME
ssh -p 122 admin@HOSTNAME
-
エクスポート用のリポジトリを準備するには、リポジトリの URL を指定して
ghe-migrator add
コマンドを使用します。-
リポジトリをロックしている場合は、このコマンドに
--lock
を追加します。 テスト実行を行っている場合は、--lock
は必要ありません。ghe-migrator add https://HOSTNAME/USERNAME/REPO-NAME --lock
-
添付ファイルを除外するには、このコマンドに
--exclude_attachments
を追加します。 添付ファイルは大きくなる場合があり、最終的なマイグレーションアーカイブを不必要に膨らませてしまう場合があります。 -
エクスポート用に一度に複数のリポジトリを準備するには、各リポジトリ URL を 1 行ずつ記載したテキスト ファイルを作成し、
-i
フラグとそのテキスト ファイルのパスを指定してghe-migrator add
コマンドを実行します。ghe-migrator add -i PATH/TO/YOUR/REPOSITORY_URL.txt
-
-
入力を求められたら、GitHub Enterprise Server ユーザ名を入力します:
Enter username authorized for migration: admin
-
personal access tokenの入力を求められたら、「GitHub Enterprise Server ソース インスタンスを準備する」で作成したアクセス トークンを入力します。
Enter personal access token: **************
-
ghe-migrator add
が終了すると、このエクスポートを識別するために生成された一意の "移行 GUID" と、エクスポートに追加されたリソースのリストが出力されます。 後続のghe-migrator add
およびghe-migrator export
の手順で生成された移行 GUID を使用して、ghe-migrator
に同じエクスポートでの操作を続行するように指示します。> 101 models added to export > Migration GUID: EXAMPLE-MIGRATION-GUID > Number of records in this migration: > users | 5 > organizations | 1 > repositories | 1 > teams | 3 > protected_branches | 1 > pull_request_reviews | 1 > milestones | 1 > issues | 3 > pull_requests | 5 > pull_request_review_comments | 4 > commit_comments | 2 > issue_comments | 10 > issue_events | 63 > releases | 3 > attachments | 4 > projects | 2
既存の移行GUIDに対して新しいリポジトリを追加するたびに、既存のエクスポートが更新されます。 移行 GUID なしで
ghe-migrator add
を再度実行すると、新しいエクスポートが開始され、新しい移行 GUID が生成されます。 インポート用の移行の準備を開始するときに、エクスポート中に生成された移行 GUID を再利用しないでください。 -
同じエクスポートにさらにリポジトリを追加するには、
-g
フラグを指定してghe-migrator add
コマンドを使用します。 これで新しいリポジトリの URL とステップ 5 の移行 GUID を渡します。ghe-migrator add https://HOSTNAME/USERNAME/OTHER-REPO-NAME -g MIGRATION-GUID --lock
-
リポジトリの追加が完了したら、
-g
フラグと手順 5 の移行 GUID を指定したghe-migrator export
コマンドを使用して移行アーカイブを生成します。$ ghe-migrator export -g MIGRATION-GUID > Archive saved to: /data/github/current/tmp/MIGRATION-GUID.tar.gz
- 移行ファイルをステージングする場所を指定するには、
--staging-path=/full/staging/path
を使用してコマンドを追加します。 既定値は/data/user/tmp
です。
- 移行ファイルをステージングする場所を指定するには、
-
お使いの GitHub Enterprise Server インスタンス への接続を閉じます。
$ exit > logout > Connection to HOSTNAME closed.
-
scp
コマンドを使用して、移行アーカイブをお使いのコンピューターにコピーします。 アーカイブファイルの名前には移行GUIDが含まれます。scp -P 122 admin@HOSTNAME:/data/github/current/tmp/MIGRATION-GUID.tar.gz ~/Desktop
-
GitHub Enterprise Server インスタンスにインポートするためにアーカイブされた移行データを準備するには、「GitHub エンタープライズServer にデータを移行する」を参照してください。