無効なユーザーが所有する Jira フィルター
このインサイトは、フィルターのいずれかが非アクティブまたは削除されたユーザーによって所有されているかどうかをチェックします。
問題点
非アクティブまたは削除されたユーザーが所有するフィルターは移行をブロックしませんが、後で Jira Cloud で非公開に設定され、簡単に更新できなくなる可能性があります。このような問題を避けるため、移行前にフィルター所有者をクリーンアップすることをお勧めします。
推奨事項
Jira Cloud でフィルターを非公開に設定した場合の問題を回避する方法。
該当のフィルターを確認する
フィルター所有者をアクティブ ユーザーに変更する
Update filter owners to active users
フィルター所有者を更新するには、次の手順に従います。
該当のフィルターを確認する
ポートフォリオ インサイトからこのインサイトを表示している場合は、SQL クエリをコピーします (下記にも貼り付けています)。
このクエリは、非アクティブまたは削除されたユーザーが所有するフィルターと以下の情報を返します。
フィルター名
フィルター作成者
フィルター所有者のユーザー名、メール アドレス、表示名、ユーザー キー、ユーザー ステータス
フィルターの JQL
SELECT DISTINCT sr.filtername AS "Filter name",
sr.username AS "Filter username",
sr.authorname AS "Filter author",
cwu.lower_email_address AS "Filter inactive user email address",
cwu.display_name AS "Filter inactive user display name",
au.user_key AS "Filter inactive user user key",
CASE WHEN cwu.active = 0 THEN 'Inactive' ELSE 'Active' END AS "User status",
sr.reqcontent AS "Filter JQL"
FROM cwd_user cwu
INNER JOIN app_user au ON (cwu.lower_user_name = au.lower_user_name)
JOIN searchrequest sr ON ((sr.username = cwu.lower_user_name OR sr.username = au.user_key)
OR (sr.authorname = cwu.lower_user_name OR sr.authorname = au.user_key))
WHERE cwu.active = 0;Fix 1: Update filter owners to active users in Jira UI
Jira UI での更新
フィルター所有者を更新する方法。
Jira で [管理] > [フィルター] に移動し、SQL クエリによって返されたフィルターを検索して、該当の各フィルターを開きます。
For each affected filter, select Actions > Change owner.
アクティブ ユーザーに所有権を割り当てます。
Fix 2: Update filter owners to active users directly in the database
次の SQL クエリを使用して、データベース内でフィルター所有者を直接更新することもできます。
所有者を置き換える際は、必ずアクティブな Jira ユーザーを選択してください。
You'll need to take the user_key of the user from the app_user table.
SELECT user_key FROM app_user WHERE lower_user_name = '<user name of the new owner of the filters>'
With the user_key value, populate it in the UPDATE statement below.
If you face the MySQL ERROR 1175, check: MySQL error code: 1175 during UPDATE in MySQL Workbench
Updating filters owned by inactive users
データベースに応じて SQL クエリを選択します。
PostgreSQL、Oracle、Microsoft SQL Server
UPDATE searchrequest
SET username = '<user_key that will be the new owner of these filters>'
, authorname = '<user_key that will be the new owner of these filters>'
WHERE id IN ( SELECT sr.id
FROM cwd_user cwu
INNER JOIN app_user au ON (cwu.lower_user_name = au.lower_user_name)
JOIN searchrequest sr ON ( (sr.username = cwu.lower_user_name OR sr.username = au.user_key) OR (sr.authorname = cwu.lower_user_name OR sr.authorname = au.user_key) )
WHERE cwu.active = 0 );MySQL
SET SQL_SAFE_UPDATES = 0;
UPDATE searchrequest
SET username = '<user_key that will be the new owner of these filters>'
, authorname = '<user_key that will be the new owner of these filters>'
WHERE id IN ( SELECT id
FROM ( SELECT sr.id
FROM cwd_user cwu
INNER JOIN app_user au ON (cwu.lower_user_name = au.lower_user_name)
JOIN searchrequest sr ON ( (sr.username = cwu.lower_user_name OR sr.username = au.user_key) OR (sr.authorname = cwu.lower_user_name OR sr.authorname = au.user_key) )
WHERE cwu.active = 0 ) AS t );
SET SQL_SAFE_UPDATES = 1;
Updating filters owned by deleted users
データベースに応じて SQL クエリを選択します。
PostgreSQL、Oracle、MSSQL
UPDATE searchrequest
SET username = '<user_key that will be the new owner of these filters>'
, authorname = '<user_key that will be the new owner of these filters>'
WHERE id IN ( SELECT sr.id
FROM searchrequest sr
JOIN app_user u ON (sr.authorname = u.user_key)
LEFT JOIN cwd_user cwu ON (u.lower_user_name = cwu.lower_user_name)
WHERE NOT EXISTS ( SELECT *
FROM cwd_user
WHERE lower_user_name = u.lower_user_name ));MySQL
UPDATE searchrequest sr
JOIN app_user u ON (sr.authorname = u.user_key)
LEFT JOIN cwd_user cwu ON (u.lower_user_name = cwu.lower_user_name)
SET username = '<user_key that will be the new owner of these filters>'
, authorname = '<user_key that will be the new owner of these filters>'
WHERE NOT EXISTS ( SELECT *
FROM cwd_user
WHERE lower_user_name = u.lower_user_name );この内容はお役に立ちましたか?