依存関係が欠落しているため、プロジェクト バージョンをインポートできない: プロジェクト - JCMA エラー

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

プラットフォームについて: サーバーと Data Center のみ。この記事は、サーバーおよび Data Center プラットフォームのアトラシアン製品にのみ適用されます。

要約

サーバーからクラウドに移行するために Jira Cloud Migration Assistant (JCMA) の実行を試みた際に移行計画が失敗し、プロジェクト バージョンに問題がある可能性がある旨を示す次のメッセージが表示される。

ERROR <Project_Key> project-import We couldn't import Project Version <Version_Name> because of <Number_of_Occurrences> missing dependencies: Project <Project_Key>. 
This caused <Number_of_Issues> other items to fail. Check the reasons for the missing dependencies on your server site. 

環境

このメッセージは Jira Cloud Migration Assistant (JCMA) に適用されます。

  • サーバーからクラウド

原因

これは、あるプロジェクトが、移行されていない別のプロジェクトのエンティティを使用しているために、依存関係が欠落しているために起こります。修正バージョン (Fix Versions) はプロジェクト固有です。

ソリューション

この問題に対処するには、適切なプロジェクトにプロジェクトバージョン<Version_Name> を追加または作成し、以前のプロジェクト バージョン (別のプロジェクトに属するもの) の関連付けを削除する必要があります。その後、一括操作で新しく作成したプロジェクト バージョンと再関連付けを行います。

これは、システム フィールドの修正バージョンまたはバージョン ピッカー タイプのカスタムフィールドで発生する可能性があります。

修正バージョン システム フィールド

以下のすべてのステップにしたがってください。

  1. この JQL (Jira Query Language) を実行して、プロジェクト バージョン  <Version_Name> を持つ、影響を受けている課題を見つけます。

    project = <Project_Key> and (fixversion = '<Version_Name>' OR affectedVersion = '<Version_Name>')

    プレースホルダーの <Project_Key> は、影響を受けているプロジェクトのプロジェクトキーに、<Version_Name> は影響を受けている課題に現在関連付けられているプロジェクト バージョンに置き換えます。

  2. 他のプロジェクトから修正バージョンを削除して、属するものに一括で更新することを推奨します。
  3. その後、問題が継続する場合や、上記の JQL が返す結果が 0 件の場合には、Jira Serverデータベースでこのクエリを実行して、影響を受けている課題を見つけます。

    select p.id project_id_issue, pv.project project_id_version, (p.pkey || '-' || i.issuenum) as key, i.summary, pv.id version_id, pv.vname version_name from jiraissue i 
    inner join project p on i.project = p.id 
    inner join nodeassociation na on na.source_node_id = i.id 
    inner join projectversion pv on pv.id = na.sink_node_id 
    where association_type in ('IssueFixVersion','IssueVersion') 
    and p.pkey in ('PROJECT_KEY') 
    and p.id != pv.project;

    プレースホルダーの PROJECT_KEY は、影響を受けているプロジェクトのプロジェクトキーに置き換えます。

  4. 結果が返ってきた場合には、ステップ #2 に戻ってプロセスを繰り返します。


バージョン ピッカー カスタム フィールド

Jira Server のデータベースでこのクエリを実行し、ログで参照されているプロジェクトのキーから、この問題の影響を受けている課題を特定します。

WITH customfieldinfo AS
  (SELECT   p.id AS project_id_source 
          , p.pkey AS project_key_source
          , (p.pkey || '-' || j.issuenum) AS issuekey
          , cf.cfname AS custom_field_name
          , cfv.numbervalue::INTEGER AS current_version_id
          , pv.vname AS current_version_name
          , cfv.id AS cfv_entry
   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 = cfv.numbervalue::INTEGER
   WHERE cf.customfieldtypekey IN ('com.atlassian.jira.plugin.system.customfieldtypes:version',
                                   'com.atlassian.jira.plugin.system.customfieldtypes:multiversion')) ,
     issueinfo AS
  (SELECT   j.id AS issueid
          , (p.pkey || '-' || j.issuenum) AS issuekey
   FROM jiraissue j
   JOIN project p ON p.id = j.project),
     versioninfo AS
  (SELECT   id AS versionid
          , vname AS versionname
          , project AS projectsourceid
   FROM projectversion),
     projectinfo AS
  (SELECT   id AS pid_dep
          , pkey AS project_key_dependency
   FROM project),
     minidb AS
  (SELECT   ii.cfv_entry
          , ii.project_id_source
          , ii.issuekey
          , ii.custom_field_name
          , ii.current_version_id
          , ii.current_version_name
          , pi.pid_dep AS project_id_depedency
          , pi.project_key_dependency
   FROM customfieldinfo ii
   JOIN issueinfo iff ON iff.issuekey = ii.issuekey
   JOIN versioninfo vi ON vi.versionid = ii.current_version_id
   JOIN projectinfo pi ON pi.pid_dep = vi.projectsourceid
   WHERE ii.project_id_source != pi.pid_dep)
SELECT   mdb.*
       , pv.project AS target_project_key
       , pv.vname AS target_project_version_name
       , pv.id AS target_project_version_id
       , 'update customfieldvalue set numbervalue = ' || pv.id || ' where id = ' || mdb.cfv_entry || ';' AS update_query
FROM minidb mdb
JOIN projectversion pv ON pv.project = mdb.project_id_source
WHERE mdb.current_version_name = pv.vname;

注意

プレースホルダーの PROJECT_KEY は、影響を受けているプロジェクトのプロジェクトキーに置き換えます。

注意

このクエリは Postgres で動作します。ご使用のデータベースに合わせて調整が必要があります。

ソリューション

  1. そのデータを移行する必要がない場合は、移行しようとしているプロジェクトに関連するすべての画面から、バージョン ピッカー タイプのカスタム フィールドを削除してください。この場合、JCMA はこれらの参照のエクスポートをスキップします。
  2. データの移行が必要な場合は、異なるタイプのカスタム フィールドを新規に作成し、この新しいフィールドにバージョン ピッカーから同じ値をコピーすることをお勧めします。その後、影響を受けるプロジェクトの画面からバージョン ピッカー カスタム フィールドを削除することも忘れないようにしてください。


最終更新日 2022 年 7 月 11 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.