ドキュメントには頻繁に更新が加えられ、その都度公開されています。本ページの翻訳はまだ未完成な部分があることをご了承ください。最新の情報については、英語のドキュメンテーションをご参照ください。本ページの翻訳に問題がある場合はこちらまでご連絡ください。

このバージョンの GitHub Enterprise はこの日付をもって終了となりました: 2021-03-02. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの改善、新機能のためには、最新バージョンのGitHub Enterpriseにアップグレードしてください。 アップグレードに関する支援については、GitHub Enterprise supportに連絡してください。

Preparing to migrate data to your enterprise

移行アーカイブを作成すると、ターゲットの GitHub Enterprise Server インスタンスにデータをインポートできます。 変更を恒久的にターゲットのインスタンスに適用する前に、潜在的なコンフリクトがないか変更をレビューできます。

ここには以下の内容があります:

移行したデータを GitHub Enterprise Server にインポートするための準備

  1. scp コマンドを使って、ソースインスタンスまたは Organization から生成された移行アーカイブを GitHub Enterprise Server ターゲットにコピーします:

    $ scp -P 122 /path/to/archive/MIGRATION_GUID.tar.gz admin@hostname:/home/admin/
  2. サイトアドミンとしてターゲットのGitHub Enterprise ServerインスタンスにSSHでアクセスしてください。

    $ ssh -p 122 admin@HOSTNAME
  3. ghe-migrator prepare コマンドを使ってターゲットインスタンスにインポートするためのアーカイブを準備し、次のステップで使用する新たな移行 GUID を生成します。

    ghe-migrator prepare /home/admin/MIGRATION_GUID.tar.gz
    • 新たにインポートを試みるには、再び ghe-migrator prepare を実行して、新しい Migration GUID を取得します。
    • マイグレーションファイルをステージングする場所を指定するには、コマンドの末尾に--staging-path=/full/staging/pathを追加してください。 デフォルトは/data/user/tmpです。

移行のコンフリクトのリストの生成

  1. ghe-migrator conflicts コマンドに移行 GUID を付けて実行し、conflicts.csv ファイルを生成します。
    $ ghe-migrator conflicts -g MIGRATION_GUID > conflicts.csv
  2. コンフリクトがある場合は、scp コマンドを使って conflicts.csv をローカルコンピュータにコピーします。
    $ scp -P 122 admin@hostname:conflicts.csv ~/Desktop
  3. 移行コンフリクトの解決もしくはカスタムマッピングのセットアップ」に進みます。

移行コンフリクトのレビュー

  1. テキストエディタもしくはCSV互換のスプレッドシートソフトウェアを使ってconflicts.csvをオープンしてください。
  2. 以下の例とリファレンスのガイダンスと共にconflicts.csvファイルをレビューし、インポートの際に適切なアクションが取られることを確認してください。

conflicts.csvファイルには、コンフリクトの移行マップと推奨アクションが含まれています。 移行マップは、ソースから移行されるデータと、そのデータがどのようにターゲットに適用されるかのリストです。

model_namesource_urltarget_urlrecommended_action
ユーザhttps://example-gh.source/octocathttps://example-gh.target/octocatmap
Organizationhttps://example-gh.source/octo-orghttps://example-gh.target/octo-orgmap
リポジトリhttps://example-gh.source/octo-org/widgetshttps://example-gh.target/octo-org/widgetsrename
Teamhttps://example-gh.source/orgs/octo-org/teams/adminshttps://example-gh.target/orgs/octo-org/teams/adminsマージ

conflicts.csvの各行には以下の情報があります。

名前説明
model_name変更されるデータの種類。
source_urlデータのソースURL。
target_url期待されるデータのターゲットURL。
recommended_actionデータをインポートする際にghe-migratorが行う推奨のアクション。

各レコードタイプで可能なマッピング

データの転送時にghe-migratorが行えるマッピングアクションは複数あります。

action説明適用可能なモデル
import(デフォルト)ソースからのデータがターゲットにインポートされます。すべてのレコードタイプ
mapソースからのデータがターゲット上の既存のデータで置き換えられます。Users、organizations、repositories
renameソースからのデータは名前が変更されてターゲットにコピーされます。Users、organizations、repositories
map_or_renameターゲットが存在する場合、そのターゲットにマップします。 そうでない場合はインポートされたモデルの名前を変更します。ユーザ
マージソースからのデータはターゲット上の既存のデータと組み合わされます。Team

We strongly suggest you review the conflicts.csv file and use ghe-migrator audit to ensure that the proper actions are being taken. If everything looks good, you can continue to "Migrating data to your enterprise".

移行コンフリクトの解決もしくはカスタムマッピングのセットアップ

ghe-migratorが正しくない変更を行うと考えられるときは、conflicts.csv内でデータを変更することによって修正をかけられます。 conflicts.csv内の任意の行を変更できます。

たとえばソースのoctocatユーザがターゲットのoctocatにマップされていることに気づいたとしましょう。

model_namesource_urltarget_urlrecommended_action
ユーザhttps://example-gh.source/octocathttps://example-gh.target/octocatmap

このユーザをターゲット上の他のユーザにマップさせることができます。 octocatが実際にはターゲットのmonalisaだということを知っているとしましょう。 conflicts.csvtarget_urlmonalisaを指すように変更できます。

model_namesource_urltarget_urlrecommended_action
ユーザhttps://example-gh.source/octocathttps://example-gh.target/monalisamap

もう1つの例として、もしもocto-org/widgetsリポジトリをターゲットインスタンス上ではocto-org/amazing-widgetsに名前を変えたいとすれば、target_urlocto-org/amazing-widgetsに、recommend_actionrenameに変更してください。

model_namesource_urltarget_urlrecommended_action
リポジトリhttps://example-gh.source/octo-org/widgetshttps://example-gh.target/octo-org/amazing-widgetsrename

カスタムマッピングの追加

移行における一般的なシナリオは、移行されたユーザがターゲット上ではソース上とは異なるユーザ名を持つことです。

ソースのユーザ名のリストとターゲットのユーザー名のリストがあれば、カスタムマッピングのCSVファイルを構築し、各ユーザのユーザ名とコンテンツが移行の終了時点で正しく割り当てられているようにそのファイルを適用できます。

ghe-migrator auditを使えば、カスタムマッピングを適用するのに必要なCSV形式で、移行されるユーザのCSVを素早く生成できます。

$ ghe-migrator audit -m user -g MIGRATION_GUID > users.csv

これで、このCSVを編集してマップあるいは名前を変更したい各ユーザに新しいURLを入力し、4番目の列をmapあるいはrenameを適切に更新できます。

たとえばユーザoctocatの名前をターゲットhttps://example-gh.target上でmonalisaに変更したいのであれば、以下の内容の行を作成します。

model_namesource_urltarget_urlstate
ユーザhttps://example-gh.source/octocathttps://example-gh.target/monalisarename

同じプロセスは、カスタムマッピングをサポートする各レコードのマッピングを作成するために使うことができます。 詳しい情報についてはレコードに可能なマッピング上のテーブルを参照してください。

修正された移行データの適用

  1. 変更を加えた後、修正された conflicts.csv (または適切な形式のその他のマッピング CSV) を scp コマンドを使ってターゲットインスタンスに適用します。

    $ scp -P 122 ~/Desktop/conflicts.csv admin@hostname:/home/admin/
  2. 修正された CSV ファイルへのパスと移行 GUID を渡して、ghe-migrator map を使い、移行データを再マップします。

    $ ghe-migrator map -i conflicts.csv  -g MIGRATION_GUID
  3. ghe-migrator map -i conflicts.csv -g MIGRATION_GUID がまだコンフリクトがあると報告してきた場合、移行のコンフリクト解決のプロセスをもう一度行ってください。