Enterprise から移行データをエクスポートする

プラットフォームの変更、およびトライアルインスタンスから本番インスタンスに移行するには、インスタンスを準備して、リポジトリをロックし、移行アーカイブを生成することで、GitHub Enterprise Server インスタンスから移行データをエクスポートできます。

GitHub Enterprise Server ソースインスタンスを準備する

  1. GitHub Enterprise Server ソースのサイト管理者であることを確認します。 そのための最善の方法は、インスタンスへのSSHが可能であることを確認することです。

  2. GitHub Enterprise Server ソースインスタンス上での repo及びadmin:orgスコープでアクセストークンを生成してください。。

  3. ダウンタイムを最小化するには、ソースインスタンスからエクスポートしたいリポジトリのリストを作成してください。 各行にそれぞれのリポジトリのURLをリストアップしたテキストファイルを使えば、複数のリポジトリをエクスポートに一度に追加できます。

GitHub Enterprise Server ソースリポジトリをエクスポートする

ノート: リポジトリをロックすると、そのリポジトリへの読み書きを防ぐことができます。 ロックされたリポジトリには、新しいTeamやコラボレータを関連づけることはできません。 トライアル実行をしているなら、リポジトリをロックする必要はありません。 使用中のリポジトリからデータを移行する場合、

GitHubはそのリポジトリをロックすることを強くおすすめします。 詳細は「移行について」を参照してください。

  1. GitHub Enterprise ServerのインスタンスにSSHでアクセスしてください。 詳しい情報については「管理シェル(SSH)にアクセスする」を参照してください。

    $ ssh -p 122 admin@HOSTNAME
  2. エクスポートするリポジトリを準備するには、ghe-migrator add コマンドをリポジトリの URL と一緒に使用します:

    • リポジトリをロックする場合は、コマンドの末尾に --lock を付けます。 トライアル実行を行う場合は、--lock は必要ありません。
      $ ghe-migrator add https://hostname/username/reponame --lock
    • コマンドの後ろに --exclude_attachments を付けると添付ファイルを除外できます。 添付ファイルは大きくなる場合があり、最終的なマイグレーションアーカイブを不必要に膨らませてしまう場合があります。
    • エクスポートする複数のリポジトリを同時に準備するには、各リポジトリ URL を 1 行ずつ記載したテキストファイルを作成し、ghe-migrator add コマンドに -i フラグとテキストファイルのパスを付けて実行します。
      $ ghe-migrator add -i PATH/TO/YOUR/REPOSITORY_URLS.txt
  3. 入力を求められたら、GitHub Enterprise Server ユーザ名を入力します:

    Enter username authorized for migration:  admin
  4. 個人用アクセストークンを求められたら、「GitHub Enterprise Serverソースインスタンスの準備」で作成したアクセストークンを入力します。

    Enter personal access token:  **************
  5. ghe-migrator addが終了すると、このエクスポートと追加されたリソースのリストを識別するために生成されたユニークな"移行GUID"が出力されます。 生成されたGUIDは、後のghe-migrator add及びghe-migrator exportのステップで同じエクスポートに対して処理を続けるよう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に対して新しいリポジトリを追加するたびに、既存のエクスポートが更新されます。 Migration GUIDなしでghe-migrator addを再実行すると、新しいエクスポートが始まり、新しいMigration GUIDが生成されます。 インポートから移行の準備を始める場合には、エクスポート中に生成されるMigration GUIDを再利用しないでください

  6. ソースリポジトリをロックした場合、ghe-migrator target_urlコマンドを使ってリポジトリの新しい場所へリンクするカスタムのロックメッセージをリポジトリのページに設定できます。 ソースリポジトリのURL、ターゲットリポジトリのURL、そしてステップ5の移行GUIDを渡してください。

    $ ghe-migrator target_url https://hostname/username/reponame https://target_hostname/target_username/target_reponame -g MIGRATION_GUID
  7. 同じエクスポートにさらにリポジトリを追加するには、ghe-migrator add コマンドに -g フラグを付けて実行します。 これで新しいリポジトリの URL とステップ 5 の移行 GUID を渡します。

    $ ghe-migrator add https://hostname/username/other_reponame -g MIGRATION_GUID --lock
  8. リポジトリを追加し終えたなら、-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です。
  9. GitHub Enterprise Serverのインスタンス への接続をクローズします。

    $ exit
    > logout
    > Connection to hostname closed.
  10. scpコマンドを使って移行アーカイブを使用中のコンピュータにコピーしてください。 アーカイブファイルの名前には移行GUIDが含まれます。

    $ scp -P 122 admin@hostname:/data/github/current/tmp/MIGRATION_GUID.tar.gz ~/Desktop
  11. GitHub Enterprise Serverインスタンスへのアーカイブされた移行データのインポートの準備をするには、「Enterpriseへのデータ移行の準備」を参照してください。

このドキュメントは役立ちましたか?

プライバシーポリシー

これらのドキュメントを素晴らしいものにするのを手伝ってください!

GitHubのすべてのドキュメントはオープンソースです。間違っていたり、はっきりしないところがありましたか?Pull Requestをお送りください。

コントリビューションを行う

OR, コントリビューションの方法を学んでください。

問題がまだ解決していませんか?