移行したデータを GitHub Enterprise Server にインポートするための準備
-
scp
コマンドを使って、ソースインスタンスまたは Organization から生成された移行アーカイブを GitHub Enterprise Server ターゲットにコピーします:$ scp -P 122 /path/to/archive/MIGRATION_GUID.tar.gz admin@hostname:/home/admin/
-
サイトアドミンとしてターゲットのGitHub Enterprise ServerインスタンスにSSHでアクセスしてく� さい。
$ ssh -p 122 admin@HOSTNAME
-
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
です。
- 新たにインポートを試みるには、再び
移行のコンフリクトのリストの生成
ghe-migrator conflicts
コマンドに移行 GUID を付けて実行し、conflicts.csv ファイルを生成します。$ ghe-migrator conflicts -g MIGRATION_GUID > conflicts.csv
- コンフリクトが� �告されなければ、「Enterprise にデータを移行する」のステップに従って安全にデータをインポートできます。
- コンフリクトがある� �合は、
scp
コマンドを使って conflicts.csv をローカルコンピュータにコピーします。$ scp -P 122 admin@hostname:conflicts.csv ~/Desktop
- 「移行コンフリクトの解決もしくはカスタ� マッピングのセットアップ」に進みます。
移行コンフリクトのレビュー
- テキストエディタもしくはCSV互換のスプレッドシートソフトウェアを使ってconflicts.csvをオープンしてく� さい。
- 以下の例とリファレンスのガイダンスと共にconflicts.csvファイルをレビューし、インポートの際に適切なアクションが取られることを確認してく� さい。
conflicts.csvファイルには、コンフリクトの移行マップと推奨アクションが含まれています。 移行マップは、ソースから移行されるデータと、そのデータがどのようにターゲットに適用されるかのリストです。
model_name | source_url | target_url | recommended_action |
---|---|---|---|
ユーザ | https://example-gh.source/octocat | https://example-gh.target/octocat | map |
Organization | https://example-gh.source/octo-org | https://example-gh.target/octo-org | map |
リポジトリ | https://example-gh.source/octo-org/widgets | https://example-gh.target/octo-org/widgets | rename |
Team | https://example-gh.source/orgs/octo-org/teams/admins | https://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 |
conflicts.csv ファイルを見直し、ghe-migrator audit
を使って適切なアクションがとられることを確認するよう強くお勧めします。問題がないようであれば、「Enterprise へのデータの移行」に進むことができます。
移行コンフリクトの解決もしくはカスタ� マッピングのセットアップ
ghe-migrator
が正しくない変更を行うと考えられるときは、conflicts.csv内でデータを変更することによって修正をかけられます。 conflicts.csv内の任意の行を変更できます。
たとえばソースのoctocat
ユーザがターゲットのoctocat
にマップされていることに気づいたとしましょう。
model_name | source_url | target_url | recommended_action |
---|---|---|---|
ユーザ | https://example-gh.source/octocat | https://example-gh.target/octocat | map |
このユーザをターゲット上の他のユーザにマップさせることができます。 octocat
が実際にはターゲットのmonalisa
� ということを知っているとしましょう。 conflicts.csvの target_url
をmonalisa
を指すように変更できます。
model_name | source_url | target_url | recommended_action |
---|---|---|---|
ユーザ | https://example-gh.source/octocat | https://example-gh.target/monalisa | map |
もう1つの例として、もしもocto-org/widgets
リポジトリをターゲットインスタンス上ではocto-org/amazing-widgets
に名前を変えたいとすれば、target_url
をocto-org/amazing-widgets
に、recommend_action
をrename
に変更してく� さい。
model_name | source_url | target_url | recommended_action |
---|---|---|---|
リポジトリ | https://example-gh.source/octo-org/widgets | https://example-gh.target/octo-org/amazing-widgets | rename |
カスタ� マッピングの追�
移行における一般的なシナリオは、移行されたユーザがターゲット上ではソース上とは異なるユーザ名を持つことです。
ソースのユーザ名のリストとターゲットのユーザー名のリストがあれば、カスタ� マッピングの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_name | source_url | target_url | state |
---|---|---|---|
ユーザ | https://example-gh.source/octocat | https://example-gh.target/monalisa | rename |
同じプロセスは、カスタ� マッピングをサポートする各レコードのマッピングを作成するために使うことができます。 詳しい情� �についてはレコードに可能なマッピング上のテーブルを参照してく� さい。
修正された移行データの適用
-
変更を� えた後、修正された conflicts.csv (または適切な形式のその他のマッピング .csv) を
scp
コマンドを使ってターゲットインスタンスに適用します。$ scp -P 122 ~/Desktop/conflicts.csv admin@hostname:/home/admin/
-
修正された .csv ファイルへのパスと移行 GUID を渡して、
ghe-migrator map
を使い、移行データを再マップします。$ ghe-migrator map -i conflicts.csv -g MIGRATION_GUID
-
ghe-migrator map -i conflicts.csv -g MIGRATION_GUID
がま� コンフリクトがあると� �告してきた� �合、移行のコンフリクト解決のプロセスをもう一度行ってく� さい。