アーカイブ済みの課題を削除する方法

お困りですか?

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

コミュニティに質問


プラットフォームについて: 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 は除く

目的

もしも環境にアーカイブされた課題が大量にあり、それらが今後確実に必要ないことがわかっている場合には、この記事で紹介した手順でそれらを削除することができます。 

ソリューション

  • データベースで、すべての課題キーおよびアーカイブされた課題の要約を返す SQL クエリを実行します。

    select ( p.pkey || '-' || ji.issuenum ) as "issue_key" from jiraissue ji
    join project p on p.id = ji.project
    where ji.archived = 'Y';
  • 下記の出力結果を例に確認します。 

    issue_key
    -----------
     PROJ-1 
    (1 row)
  • ユーザーは出力を CSV ファイルとしてエクスポートし、PowerShell でそれらの値を繰り返し処理できます。
  • Linux サーバーから直接実行できる bash スクリプトを作成する方法は次のとおりです。

ステップは次のとおりです。

  1. .sh ファイルを以下の内容で作成します。

    #!/bin/bash
    echo "What's your Jira URL? Provide with the scheme, e.g. https://myjira.com"
    read jiraurl
    echo "What's your Jira username?"
    read username
    echo "What's your password?"
    read password
    
    cat issuelist.csv | while read line
    do
    echo "Restoring issue $line"
    curl -u $username:$password \
    	-H "Content-Type:application/json" \
    	-X PUT \
    	-k $jiraurl/rest/api/2/issue/$line/restore
    sleep 0.1
    echo "Deleting issue $line"
    curl -u $username:$password \
    	-H "Content-Type:application/json" \
    	-X DELETE \
    	-k $jiraurl/rest/api/2/issue/$line
    sleep 0.1
    done
    
    
  2. 以下の SQL を使用して、アーカイブされたすべての課題のリストを取得します
    select ( p.pkey || '-' || ji.issuenum ) as "issue_key" from jiraissue ji
    join project p on p.id = ji.project
    where ji.archived = 'Y';
  3. クエリはさらにカスタマイズすることが可能です。たとえば、Project PROJ のアーカイブされた課題をクエリする場合には、次のようなクエリになります。

    select ( p.pkey || '-' || ji.issuenum ) as "issue_key" from jiraissue ji
    join project p on p.id = ji.project
    where ji.archived = 'Y' and p.pkey = 'PROJ';
  4. クエリの出力を、.sh ファイルを作成したのと同じディレクトリにある「issuelist.csv」というファイルに、1 行に 1 つの課題キーを含めて配置します。クエリが提供するのと同じ方法です。
    • PROJ-10 
      PROJ-16 
      PROJ-15 
      PROJ-14 
      PROJ-17
  5. スクリプトを実行して、Jira baseurl、ユーザー名、パスワードを入力します。

    $ sh delete-archived-issues.sh 
    What's your Jira URL? 
    Provide with the scheme, e.g. https://myjira.com https://10.125.91.129 
    What's your Jira username? USERNAME 
    What's your password? mypassword
  6. スクリプトは各行を繰り返し処理し、課題を復元してから削除します。アーカイブされた課題を直接削除することはできないため、最初に課題を復元する必要があります。

    $ sh delete-archived-issues.sh 
    What's your Jira URL? 
    Provide with the scheme, e.g. https://myjira.com https://10.125.91.129 
    What's your Jira username? USERNAME 
    What's your password? PASSWORD 
    Restoring issue PROJ-10 
    Deleting issue PROJ-10 
    Restoring issue PROJ-16 
    Deleting issue PROJ-16 
    Restoring issue PROJ-15 
    Deleting issue PROJ-15 
    Restoring issue PROJ-14
    Deleting issue PROJ-14

Jira サーバーに大きな負荷が掛かるのを防ぐために、1/10 秒のスリープがあります。また、間違った課題が誤って (例えば、SQL クエリを間違えるなどして) 削除された場合に備えて、最初に必ずバックアップを取得してください。


Related info

The article How to speed up Jira Data Center project delete by deleting data ahead of time also present alternatives for deleting issue data directly from database. 


説明
製品Jira Software 

最終更新日: 2024 年 12 月 9 日

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

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