依存関係が欠落しているため、課題をインポートできませんでした: プロジェクト - JCMA エラー
プラットフォームについて: Server および Data Center のみ。この記事は、Server および Data Center プラットフォームのアトラシアン製品にのみ適用されます。
Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Fisheye および Crucible は除く
要約
Jira Cloud Migration Assistant (JCMA) を実行して Server から Atlassian Cloud にデータを移行しようとすると、移行計画が失敗して、プロジェクトの依存関係に関連する次のメッセージが表示されます。
ERROR <Project_Key> project-import
We couldn’t import Issue <Issue_Key> because of 1 missing dependencies: Project <Project_Dependency_Key>.
This caused <Number_of_Items> other items to fail.
Check the reasons for the missing dependencies on your server site.
環境
このメッセージは Jira Cloud Migration Assistant (JCMA) に適用されます。
- サーバーからクラウド
原因
これは、一部の Jira 課題が別のプロジェクトのプロジェクト値 (ID またはキー) を使用している可能性があるためです。これらの値は、プロジェクト ピッカー タイプのカスタム フィールドで参照できます。
依存するプロジェクトが移行計画に含まれていない場合、JCMA はその参照を取り込むことができません。
特定する
Jira Server のデータベースでこのクエリを実行し、ログで参照されているプロジェクト キーから、この問題の影響を受けている Jira 課題を特定します。
WITH info AS
(SELECT p.id AS project_id_source
, CONCAT(p.pkey, '-', j.issuenum) AS issuekey_source
, cf.cfname AS custom_field_name
, cfv.numbervalue::INTEGER AS project_id_dependency
FROM jiraissue j
INNER JOIN project p ON (p.id = j.project)
INNER JOIN customfieldvalue cfv ON (cfv.issue = j.id)
INNER JOIN customfield cf ON (cf.id = cfv.customfield)
INNER JOIN projectversion pv ON (pv.id = cfv.numbervalue::INTEGER)
WHERE cf.customfieldtypekey = 'com.atlassian.jira.plugin.system.customfieldtypes:project'
AND p.pkey = 'PROJECT_KEY'
AND p.id != cfv.numbervalue::INTEGER)
, projects AS
(SELECT id AS pid_dep
, pkey AS project_key_dependency
FROM project)
SELECT project_id_source
, issuekey_source
, custom_field_name
, pid_dep
, project_key_dependency
FROM info i
INNER JOIN projects ps ON (i.project_id_dependency = ps.pid_dep);
WITH info AS
(SELECT p.id AS project_id_source
, CONCAT(CONCAT(p.pkey, '-'), j.issuenum) AS issuekey_source
, cf.cfname AS custom_field_name
, CAST(cfv.numbervalue AS NUMBER) AS project_id_dependency
FROM jiraissue j
JOIN project p ON (p.id = j.project)
JOIN customfieldvalue cfv ON (cfv.issue = j.id)
JOIN customfield cf ON (cf.id = cfv.customfield)
JOIN projectversion pv ON (pv.id = CAST(cfv.numbervalue AS NUMBER))
WHERE cf.customfieldtypekey = 'com.atlassian.jira.plugin.system.customfieldtypes:project'
AND p.pkey = 'PROJECT_KEY'
AND p.id != CAST(cfv.numbervalue AS NUMBER))
, projects AS
(SELECT id AS pid_dep
, pkey AS project_key_dependency
FROM project)
SELECT project_id_source
, issuekey_source
, custom_field_name
, pid_dep
, project_key_dependency
FROM info i
INNER JOIN projects ps ON (i.project_id_dependency = ps.pid_dep);
WITH info AS
(SELECT p.id AS project_id_source
, CONCAT(p.pkey, '-', j.issuenum) AS issuekey_source
, cf.cfname AS custom_field_name
, CAST(cfv.numbervalue AS BIGINT) AS project_id_dependency
FROM jiraissue j
INNER JOIN project p ON (p.id = j.project)
INNER JOIN customfieldvalue cfv ON (cfv.issue = j.id)
INNER JOIN customfield cf ON (cf.id = cfv.customfield)
INNER JOIN projectversion pv ON (pv.id = CAST(cfv.numbervalue AS BIGINT))
WHERE cf.customfieldtypekey = 'com.atlassian.jira.plugin.system.customfieldtypes:project'
AND p.pkey = 'PROJECT_KEY'
AND p.id != CAST(cfv.numbervalue AS BIGINT))
, projects AS
(SELECT id AS pid_dep
, pkey AS project_key_dependency
FROM project)
SELECT project_id_source
, issuekey_source
, custom_field_name
, pid_dep
, project_key_dependency
FROM info i
INNER JOIN projects ps ON (i.project_id_dependency = ps.pid_dep);
SELECT project_id_source,
issuekey_source,
custom_field_name,
pid_dep,
project_key_dependency
FROM ( SELECT p.id AS project_id_source
, CONCAT(p.pkey, j.issuenum) AS issuekey_source
, cf.cfname AS custom_field_name
, CAST(cfv.numbervalue AS UNSIGNED) AS project_id_dependency
FROM jiraissue j
INNER JOIN project p ON (p.id = j.project)
INNER JOIN customfieldvalue cfv ON (cfv.issue = j.id)
INNER JOIN customfield cf ON (cf.id = cfv.customfield)
INNER JOIN projectversion pv ON (pv.id = CAST(cfv.numbervalue AS UNSIGNED))
WHERE cf.customfieldtypekey = 'com.atlassian.jira.plugin.system.customfieldtypes:project'
AND p.pkey = 'PROJECT_KEY'
AND p.id != CAST(cfv.numbervalue AS UNSIGNED) ) i
JOIN ( SELECT id AS pid_dep, pkey AS project_key_dependency FROM project ) ps ON (i.project_id_dependency = ps.pid_dep);
注意
プレースホルダーの PROJECT_KEY は、影響を受けているプロジェクトのプロジェクトキーに置き換えます。
ソリューション
- そのデータを移行する必要がない場合は、移行しようとしているプロジェクトに関連するすべての画面から、プロジェクト ピッカー タイプのカスタム フィールドを削除します。
- これにより、JCMA はその参照のエクスポートをスキップします。
- データの移行が必要な場合は、異なるタイプのカスタム フィールドを新規に作成し、この新しいフィールドにプロジェクト ピッカーから同じ値をコピーすることをお勧めします。
- その後、影響を受けるプロジェクトの画面からプロジェクト ピッカー カスタム フィールドを削除する必要があります。