インポート
インポートを開始する前に
インポート プロセスを開始する前に、必ず移行の前提条件を確認してください。
Copy your import file to the target instance by copying into $BITBUCKET_HOME/shared/data/migration/import
and specifying the path relative to the import directory in the REST call. Your import file must be copied to this directory or your import will not work.
ファイルをコピーした後は、ファイルの完全性を確認し、コピーで問題が発生していないことを確認することをおすすめします。これは、たとえばソース インスタンスとターゲット インスタンスの両方で (md5 ツールなどを使用して) エクスポート アーカイブの MD5 サムを計算し、結果が同じであることを確認することで行えます。
インポートの実行
REST エンドポイントを呼び出すと、インポーターがデータベースとファイル システムへの入力を開始します。
プロジェクト キーの競合の解決を求めるプロンプトは表示されません。これらは自動的に解決され、警告メッセージがジョブに追加されます。ジョブ メッセージを問い合わせる方法については、以下の「インポート後」セクションを参照してください。
次のコマンドを使用してインポートを実行できます。
curl -s -n -X POST -H 'Content-type: application/json' -d '{"archivePath":"Bitbucket_export_422.tar"}' http://localhost:7990/bitbucket/rest/api/1.0/migration/imports | jq .
In the above example, the file 'Bitbucket_export_422.tar' was imported from the home/shared/data/migration/import
directory. The archivePath
parameter can either be relative or absolute.
例
Relative (to $BITBUCKET_HOME
/shared/data/migration/import
):
{"archivePath":"Bitbucket_export_422.tar"}
インポートには次のリクエスト値が必要です (REST ドキュメント)。
値 | 説明 |
---|---|
URL | /rest/api/1.0/migration/imports |
HTTP 動詞 | POST |
HTTP ヘッダー | Content-type: application/json |
認証 | Basic (基本) |
レスポンスには、後でジョブのステータスを問い合わせるために重要となるジョブ ID が含まれます。
インポート中
以下の特定の REST ポイントをクエリすると、進捗を確認できます。
watch -n1 'curl -s -n -X GET http://localhost:7990/bitbucket/rest/api/1.0/migration/imports/<Job ID> | jq .'
Replace <Job ID>
with the "id" value that was returned from request that started the import job.
進捗状況を問い合わせるには次のリクエスト値が必要です (REST ドキュメント)。
説明 | 値 |
---|---|
URL | /rest/api/1.0/migration/imports/<Job ID> |
HTTP 動詞 | GET |
認証 | Basic (基本) |
インポート プロセス中、ソース インスタンスへの変更は行われないため、問題が発生した場合はロールバックできます。
インポート後
On successful completion, the job state will change to "completed". If any errors occurred, the job state will change to ABORTED
for fatal errors or FAILED
.
警告またはエラーを確認するには、次の手順を実行します。
curl -s -n -X GET http://localhost:7990/bitbucket/rest/api/1.0/migration/imports/<Job ID>/messages | jq .
Replace <Job ID>
with the "id" value that was returned from request that started the import job.
警告またはエラーを確認するには次の値が必要です (REST ドキュメント)。
説明 | 値 |
---|---|
URL | /rest/api/1.0/migration/exports/<Job ID>/messages |
HTTP 動詞 | GET |
認証 | Basic (基本) |
警告メッセージへの対応方針はそれぞれで異なりますが、これらは一般に、エクスポートされなかったデータがあるか、名前の競合が解決されたことを意味します。
エラー メッセージは、インポートが成功せず、一部のデータが部分的にインポートされたか、まったくインポートされなかったことを意味します。詳細は、トラブルシューティングのセクションを参照してください。
インポートのキャンセル
インポート ジョブはエクスポート ジョブのようには即座にキャンセルされません。インポート中、キャンセル リクエストが許可されると、以下のチェックポイントが適用され、次にジョブが停止します。
- 現在のフォーク階層のインポートおよび検証後
- 次のリポジトリのインポート前
- 次のプル リクエストのインポート前
これは、一部のリポジトリがフォーク階層からなくなったり、一部のプル リクエストがリポジトリからなくなったりする可能性があることを意味します。ジョブが正常にキャンセルされた場合、リポジトリの Git データの一貫性は常に保たれます。
インポートをキャンセルするには、次の手順を実行します。
curl -s -n -X POST -H 'Content-type: application/json' http://localhost:7990/bitbucket/rest/api/1.0/migration/imports/<job ID>/cancel
Replace <Job ID>
with the "id" value that was returned from request that started the import job.
インポートをキャンセルするには次のリクエスト値が必要です (REST ドキュメント)。
説明 | 値 |
---|---|
URL | /rest/api/1.0/migration/imports/<job ID>/cancel |
HTTP 動詞 | POST |
認証 | Basic (基本) |