Cloud への移行時に無効なメール アドレスを解決する
プラットフォームについて: Data Center のみ - この記事は、Data Center プラットフォームのアトラシアン製品にのみ適用されます。
要約
Server または Data Center からクラウドに移行する場合、移行アシスタントアプリは一連の事前チェックを実行し、移行元のインスタンスに無効なメール アドレスのユーザーが含まれていないことを確認します。Cloud では、メール アドレスがプライマリ識別子であるため、有効なものでなければなりません。Jira および Confluence から移行されたコンテンツは、メール アドレスに基づいて Cloud のユーザーにリンクされます。
特定する
以下のいずれかの方法を用いて、無効なメール アドレスを持つユーザーを特定します。
Jira Cloud Migration Assistant でユーザーを自動で特定する
Migration Assistant を使ってユーザーを評価して、要件を満たしていないメール アドレスを持つユーザーを特定します。この評価は、移行前であればいつでも実行できます。
無効なメール アドレスを持つユーザーを特定するには、以下の手順に従ってください。
まず、Jira Cloud Migration Assistant を開きます。
[Assess and prepare users (ユーザーの評価と準備)] カードで、[Begin assessing (評価を開始)] を選択します。これにより、空の結果のページが開きます。
評価を開始するには、[Begin assessing (評価を開始)] を選択します。
評価が完了すると、無効なメール アドレスおよび重複したメール アカウントを含む結果が以下のように表示されます。
評価および次のステップに関する詳細は、「移行のためにユーザーを評価および準備する」を参照してください。
Jira Cloud Migration Assistant でユーザーを特定する
Confluence では、上記の評価方法は使用できません。ただし、新しい移行プランを作成し、事前チェックを実行することで移元インスタンスをスキャンすることが可能です。無効なメール アドレスがあると、以下のように表示されます。
データベース上でユーザーを特定する
データベースで次のクエリを使い、無効なメール アドレスのユーザーを特定することもできます。
Postgres
SELECT email_address
, user_name
FROM cwd_user
WHERE email_address !~ '^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+[.][A-Za-z]+$'
OR length(substring(email_address from '(.*)@')) > 64
OR email_address IS NULL;
Oracle
SELECT email_address
, user_name
FROM cwd_user
WHERE NOT REGEXP_LIKE (email_address, '^[A-Za-z0-9\.\!\#\$\%\&\''\*\+\-\/\=\?\^\_\|\~\(\)]+@([A-Za-z0-9_-]+\.?)+$', 'i')
OR instr(email_address, '@') > 64
OR email_address IS NULL;
MySQL
SELECT email_address
, user_name
FROM cwd_user
WHERE email_address NOT REGEXP '^[A-Za-z0-9\.\!\#\$\%\&\'\*\+\-\/\=\?\^\_\|\~\(\)]+@([A-Za-z0-9_-]+\.?)+$'
OR LENGTH(substring_index(email_address, '@', 1)) > 64
OR email_address IS NULL;
MS SQL Server
SELECT email_address
, user_name
FROM cwd_user
WHERE NOT email_address LIKE '%_@%__%.__%'
OR NOT PATINDEX('%[^a-z,0-9,@,.,_,\-]%', email_address) = 0
OR charindex('@', email_address) > 64
OR email_address IS NULL;
ソリューション
移行元のユーザー ディレクトリでメール アドレスを手動で修正するか、移行アシスタントで自動オプションの 1 つを選択して、移行中にユーザーを更新することができます。
データベースの変更を行う前に必ずデータをバックアップしてください。可能であれば、まずステージング サーバーで、すべての変更、挿入、更新、または削除の SQL コマンドをテストしてください。
ユーザー ディレクトリ内で有効なメールアドレスを手動で作成して更新する
有効なメール アドレスを手動で作成することができます(例: user@atlassian.com)そして、LDAP サーバーや Data Center インスタンスなど、使用しているユーザー ディレクトリでそれらを更新してください。
Server または Data Center インスタンスでユーザーのメール アドレスを更新するには、以下の手順に従ってください。
[管理] > [ユーザー管理] を選択します。
ページの一番上にあるフィルターを使用して更新したいユーザーを探します。
ユーザー名の隣の[編集]を選択します。
メール アドレスを更新して、[更新] を選択します。
移行中に自動でユーザーを更新する (Jira のみ)
このオプションは、Jira Cloud Migration Assistant でのみ利用できます。
移行アシスタントの「Jira Cloud Migration Assistant でユーザーを自動で特定するユーザーを自動的に識別する」セクションで説明した評価が完了したら、次のステップとして、移行アシスタントで無効なメール アドレスを修正できます。この方法を選択した場合、移行元のディレクトリのユーザーは更新されず、移行中に Cloud で作成されたユーザーだけが更新されることに注意してください。
これらの自動修正は、古いアカウントやテスト用アカウントなど、重要でないアカウントに適用されるべきです。Cloud を使用する実際のユーザーは、ユーザー ディレクトリ内で更新する必要があります。
無効なメール アドレスを自動で修正する方法
Migration Assistant の[Assess and prepare users] セクションで、結果を表示します。
結果を表示したら、[Fix invalid emails] を選択します。
いずれかのオプションを選択して、無効なメール アドレスを修正します。各オプションの詳細は、「無効なメール アドレスを修正する」を参照してください。
データベースでユーザーを手動で更新する
データベースのユーザーディレクトリを更新します。これらのクエリを使用することで、無効なメール アドレスを持つ各ユーザーのメール アドレスを以下の形式を使って更新します。invaliduser-<id>@domain.com
クエリは、具体的なドメインを加えたり、形式を変更して調整してください。完了したら、Server または Data Center インスタンスを再起動してください。
Postgres
update cwd_user
set email_address = 'invaliduser-' || id || '@domain.com',
lower_email_address = 'invaliduser-' || id || '@domain.com'
where lower_email_address in (select lower_email_address from cwd_user where lower_email_address !~ '^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+[.][A-Za-z]+$');
Oracle
UPDATE cwd_user
SET email_address = 'invalideuser-' || id || '@domain.com',
lower_email_address = 'invalideuser-' || id || '@domain.com'
WHERE lower_email_address in (SELECT lower_email_address
FROM cwd_user
WHERE NOT REGEXP_LIKE (lower_email_address, '^[A-Za-z0-9\.\!\#\$\%\&\''\*\+\-\/\=\?\^\_\|\~\(\)]+@([A-Za-z0-9_-]+\.?)+$', 'i'));
MySQL
UPDATE cwd_user
SET email_address = 'invalideuser-' || id || '@domain.com',
lower_email_address = 'invalideuser-' || id || '@domain.com'
WHERE email_address NOT REGEXP '^[A-Za-z0-9\.\!\#\$\%\&\'\*\+\-\/\=\?\^\_\|\~\(\)]+@([A-Za-z0-9_-]+\.?)+$';
MS SQL Server
UPDATE cwd_user
SET email_address = CONCAT('invaliduser-',id,'@domain.com'),
lower_email_address = CONCAT('invaliduser-',id,'@domain.com')
WHERE lower_email_address in (SELECT lower_email_address
FROM cwd_user WHERE not lower_email_address LIKE '%_@__%.__%'or not PATINDEX('%[^a-z,0-9,@,.,_,\-]%', lower_email_address) = 0);