Jira Cloud Migration Assistant (JCMA) ですべてのボードとフィルターを移行する方法
プラットフォームについて: サーバーと Data Center のみ。この記事は、サーバーおよび Data Center プラットフォームのアトラシアン製品にのみ適用されます。
目的
このドキュメントでは、プロジェクト横断ボードを Jira Cloud Migration Assistant (JCMA) 経由で移行するための最新の機能フラグの利用方法をご説明します。
重要: 機能フラグは実験的に提供されているものです。これらの機能フラグによって移行が破損してしまった場合、当社は可能な限りの支援を提供しますが、修正やインシデント対応を保証することはできません。機能フラグはあらゆるエッジ ケースを網羅しているわけではありません。このような機能フラグの利用が唯一の選択肢である場合、機能フラグを有効化した状態で移行の完全なテストを行ってください。機能フラグの利用で問題が発生した場合は手動の回避策をご検討ください。
機能フラグが有効化されている場合、JCMA ですべてのプロジェクト横断ボードやフィルターの移行状況は表示されません。代わりに次のように表示される場合があります。
移行の詳細に含まれるすべての項目で緑色のチェックマークが表示されている
移行ステークホルダーが Migration running または Migration incomplete (インポート側のエラーが発生した場合、または最後の CROSS_PROJECT_DATA 手順)
要約
Jira Cloud Migration Assistant は現在も開発が続けられているため、デフォルトですべてのデータが移行されるわけではありません。
JCMA で移行されるオブジェクトと移行されないオブジェクトの包括的な一覧をこちらで確認していただけます。Jira Cloud Migration Assistant で移行される情報
この記事では次のようなオブジェクトに対応します。
プロジェクト横断ボード
移行対象のプロジェクトに接続されていないボード
非アクティブなユーザーや削除されたユーザーに紐づくボード/フィルター
移行されないボードのフィルター
環境
Jira 7.6 以降
Jira Cloud Migration Assistant バージョン 1.7.1 以降
サニティー チェック
The admin user running the migration plan in JCMA must have the "Browse Project" Permission on all projects that are being migrated. See the MIG-1089 bug linked at the end of this KB for further reference.
Before we can migrate all boards and filters, there are some sanity checks (and minor fixes) apart from the project permission check above, that are required to be done on Jira Server's database.
JCMA は、ボードのフィルターが単一のプロジェクトに紐づく場合にのみ、ボードをプロジェクトに割り当てます。JCMA はプロジェクト横断ボードやフィルターの移行時、これらのボードの所属先をボード管理者 (所有者) に設定します。
ボード管理者またはフィルター所有者が非アクティブな場合、JCMA によって適切なプロジェクトが場所として割り当てられない可能性があります。このため、ボードやフィルターを安全に移行するためにこのような詳細を確認しておくことをおすすめします。
すべてのボードやフィルターの移行を開始する前にいくつかの点を考慮する必要があります。
ボードが有効なフィルターに関連付けられていること
ボードの列が有効なステータスに関連付けられていること
クイック フィルターの無効な JQL が修正されていること
- 共有権限設定に有効なグループがあること
すべてのフィルターで、メール アドレスなどの個人情報が取り除かれていること
非アクティブなユーザーや削除されたユーザーによって所有/作成されたボードやフィルターが有効な所有者に割り当てられていること
ダーク機能/機能フラグ
Migrating cross-project boards and filters is implemented as Feature Flags (also known as Dark Features) and is not enabled in JCMA by default. See Enable Dark Feature in Jira for instructions on how to use feature flags.
すべてのチェックと変更 (以降のセクションを参照) が完了してからのみ、Jira Server のインスタンスで以下の 2 つのダーク機能を適用してください。
com.atlassian.jira.migration.export.all.filters
com.atlassian.jira.migration.export.multiprojects.boards
ダーク機能 com.atlassian.jira.migration.export.shared.filters のサポートは終了しています。com.atlassian.jira.migration.export.all.filters に統合されています。上記2つのダーク機能のみを追加してください。
これらのダーク機能を適用するには、ご利用の Jira Server インスタンスで次の手順を実行します。
次の URL に移動します。
${Jira_URL}/secure/admin/jira/views/SiteDarkFeatures!default.jspa
- 上記のダーク機能を追加します。
- [追加] をクリックします (Jira の再起動は不要です)
Make sure to use the two Dark Features in only one JCMA plan (see the two suggested approaches below and choose one).
上記のダーク機能を有効化した状態で、最初のプランですべてのボードを移行すると、JCMA はすべてのボードを移行し、それらをプロジェクトの場所にリンクしようとします。リンクできない場合、一時的にボード所有者の場所に保持します。
しかし、他のプロジェクト用の他のプランが実行されると、それらの移行でボードを適切な場所に配置するような調整が行われます。
複数のプランにこれらのダーク機能を含めた場合、移行済みのすべてのボードが再度更新され、プランの内容に応じて個々のユーザーの場所に配置されます。
従って、以下の 2 つのうちのいずれかを選択いただくのが推奨の進め方となります。
- 上記 2 つのダーク機能を有効化する
- 完全な JCMA 移行プラン (すべてのプロジェクト) を実行する
- 上記 2 つのダーク機能を無効化する
または
- 2 つのダーク機能はまだ有効化しない
- JCMA でデータを移行する ( お客様によっての最適なシナリオに応じて、1 つまたは複数のプラン)
- すべてのデータを移行したら、2 つのダーク機能を有効化する
- 課題 1 つだけのダミープロジェクトを Jira Server に作成する
- JCMA 移行プランを、ダミープロジェクトのみを含めて実行する
- 完了したら、このボード/フィルター用の 2つのダーク機能を無効化する
先に進む前に
以降の変更では、DB 管理者または SELECT/DELETE/UPDATE SQL クエリの実行方法を知っているユーザーが必要です。
データベース レベルでデータを変更するため、変更内容に特に注意を払ってください。
データベースの変更を行う場合は必ず事前にバックアップを取得してください。可能な場合は、まずステージング サーバーで SQL コマンドの変更、挿入、更新、または削除を行うようにします。
存在しないフィルターにリンクされているボード
Jira 管理者が DB からオブジェクトを削除した場合や、Jira のバージョンが古い場合は、これによってデータの整合性が失われる可能性があります。また、存在しなくなったフィルターにボードがリンクするような不一致につながる可能性もあります。
さらに、移行を実行する Jira 管理者が UI 経由で対象のフィルターやボードを見つけて修正するための権限 (DB レベルで権限を変更して Jira を再起動した場合を除く) を持っていない可能性があります。
この問題を修正するには複数の方法があり、以降では主な推奨事項として 2 つのアプローチを記載しています。
存在しないステータスにリンクされたボード列
参考: JCMA の移行後のログに含まれる次のようなエラーを見つけることができます。
project-export Board '<board name>' has columns with missing statuses. Missing statuses are: <status 1>=[10010], <status 2>=[10011], <status 3>=[10012]. Remove the columns OR change the column statuses.
修正 1 - Jira UI でボード (上記の SELECT SQL 文の出力に記載されたもの) を開いて削除
クイック フィルター内の無効な JQL
クイック フィルター内の個人情報を確認することをおすすめします。これが存在するとインポート プロセスで次のようなエラーが生成される可能性があります。
project-import We couldn't import Board <Board ID>. Reason: JQL in quick filter is invalid: Invalid JQL: Error in the JQL Query: The character '@' is a reserved JQL character. You must enclose it in a string or use the escape '\u0040' instead. (line 1, character 34).
この項目についてデータベースで行える修正方法はありません。クイック フィルターの JQL を更新してサポートされていない文字を削除する必要があります。
共有権限に無効なグループがある
共有権限設定でグループが参照されているが、そのグループ自体が Jira に存在しなくなっている場合があります。このクエリで、これらの無効なグループをすべて列挙します。
以下の方法でこれを修正できる可能性があります。
Jira Server でこれらのグループを再作成する
これらの共有権限エントリを削除する (フィルター/ボード/プロジェクトを編集し、権限設定にある無効なグループへの参照を削除する)。
共有権限のグループを置き換える (上記と同様だが、参照を削除するのではなく、有効なグループと置き換える)
フィルターに含まれるメール アドレスなどの個人情報
フィルター内の個人情報を確認することをおすすめします。これが存在するとインポート プロセスで次のようなエラーが生成される可能性があります。
Project-import We couldn't import Filter 'FILTER NAME'. Reason: Failed to sanitize personal data from query
この項目についてデータベースで行える修正方法はありません。クイック フィルターの JQL を更新してユーザーの個人情報を削除する必要があります。
非アクティブなユーザーや削除されたユーザーが所有するボード/フィルター
非アクティブなユーザーや存在しないユーザーが所有するボード/フィルターがあると、JCMA で次のようなエラーが返されます。
Unsupported CAP Board "FILTER_NAME" [985] Cross-project board Boards that reference multiple projects are not supported via migration. This board will not be migrated. If you require this board, re-create the board in your cloud site. To pull out the JQL for board filters, run SQL queries from this page: https://confluence.atlassian.com/jirakb/troubleshooting-errors-and-non-migrated-entities-with-the-jira-cloud-migration-assistant-1021239878.html
Reference: - MIG-736Getting issue details... STATUS
非アクティブなユーザーが所有するボード
修正 1 - Jira UI でボード (上記の SELECT SQL 文の出力に記載されたもの) を開いて所有者を手動で変更。これが行えない場合は以降の DB 修正のアプローチに進みます。
非アクティブなユーザーが所有するフィルター
修正 1 - Jira UI (ボード/フィルター設定) でフィルター (上記の SELECT SQL 文の出力に記載されたもの) を開いて所有者を変更
削除済みのユーザーが所有するボード
修正 1 - Jira UI (ボード設定) でボード (上記の SELECT SQL 文の出力に記載されたもの) を開いて所有者を変更
削除済みのユーザーが所有するフィルター
修正 1 - Jira UI (ボード/フィルター設定) でフィルター (上記の SELECT SQL 文の出力に記載されたもの) を開いて所有者を変更
ボードがプロジェクト横断か単一プロジェクト (非公開ボードではないもの) かを確認する
既知の問題
- MIG-169Getting issue details... STATUS