Automation for Jira のアップグレードまたはアップデート後に Automation for Jira が動作しない
プラットフォームについて: Data Center のみ。 - この記事は、 Data Center プラットフォーム。
この KB は Data Center バージョンの製品用に作成されています。Data Center 固有ではない機能の Data Center KB は、製品のサーバー バージョンでも動作する可能性はありますが、テストは行われていません。 Server* 製品のサポートは 2024 年 2 月 15 日に終了しました。Server 製品を実行している場合は、 アトラシアン Server サポート終了 のお知らせにアクセスして、移行オプションを確認してください。
*Fisheye および Crucible は除く
要約
Automation が予想どおりに動作していません。既存のルールを変更しようとすると、UI にエラーが表示されます。
診断
最近、Jira をアップグレードした可能性があります。
最近、Automation for Jira を v7.3 以降にアップデートしました
Automation for Jira が予想どおりに動作していません。プロジェクトの自動化を表示すると、次のエラーが表示される場合があります
1 2 3
Error Error while updating rule. Error Please reload and try again.
自動化テーブルに関連するエラーがログに表示されます。次にいくつかを例示します。
1
2
3
4
5
6
7
8
9
10
11
12
13
2022-06-02 16:58:01,559+0000 http-nio-127.0.0.1-8082-exec-23 ERROR admin 1018x25070x1 1govjlw 123.45.678.901,10.11.12.13,127.0.0.1 /rest/cb-automation/latest/project/13800/rule/3470 [c.a.p.r.c.error.jersey.ThrowableExceptionMapper] Uncaught exception thrown by REST service: Caught MySQLSyntaxErrorException for select distinct `AO_589059_AUTOMATION_QUEUE`.`AUDIT_ITEM_ID`, `AO_589059_AUTOMATION_QUEUE`.`EXECUTION_UUID`
from `AO_589059_AUTOMATION_QUEUE` `AO_589059_AUTOMATION_QUEUE`
where `AO_589059_AUTOMATION_QUEUE`.`RULE_ID` = ? and `AO_589059_AUTOMATION_QUEUE`.`AUDIT_ITEM_ID` is not null and `AO_589059_AUTOMATION_QUEUE`.`EXECUTION_UUID` is not null
com.querydsl.core.QueryException: Caught MySQLSyntaxErrorException for select distinct `AO_589059_AUTOMATION_QUEUE`.`AUDIT_ITEM_ID`, `AO_589059_AUTOMATION_QUEUE`.`EXECUTION_UUID`
from `AO_589059_AUTOMATION_QUEUE` `AO_589059_AUTOMATION_QUEUE`
where `AO_589059_AUTOMATION_QUEUE`.`RULE_ID` = ? and `AO_589059_AUTOMATION_QUEUE`.`AUDIT_ITEM_ID` is not null and `AO_589059_AUTOMATION_QUEUE`.`EXECUTION_UUID` is not null
at com.querydsl.sql.DefaultSQLExceptionTranslator.translate(DefaultSQLExceptionTranslator.java:50)
at com.querydsl.sql.Configuration.translate(Configuration.java:459)
...
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'AO_589059_AUTOMATION_QUEUE.EXECUTION_UUID' in 'field list'
at sun.reflect.GeneratedConstructorAccessor745.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
...
1
2
3
4
5
6
7
8
9
10
11
12
2022-06-02 16:58:15,786+0000 Caesium-1-3 ERROR ServiceRunner [c.c.j.p.automation.schedule.RuleInsightsUpdateJob] Error executing rule insights update job
com.querydsl.core.QueryException: Caught MySQLSyntaxErrorException for select `AO_589059_RULE_STAT_ROLLUP_HR`.`CREATED`
from `AO_589059_RULE_STAT_ROLLUP_HR` `AO_589059_RULE_STAT_ROLLUP_HR`
order by `AO_589059_RULE_STAT_ROLLUP_HR`.`CREATED` desc
limit ?
at com.querydsl.sql.DefaultSQLExceptionTranslator.translate(DefaultSQLExceptionTranslator.java:50)
at com.querydsl.sql.Configuration.translate(Configuration.java:459)
...
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'jiradb.AO_589059_RULE_STAT_ROLLUP_HR' doesn't exist
at sun.reflect.GeneratedConstructorAccessor745.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
...
1
2
3
4
5
6
7
8
9
10
11
12
2022-06-02 17:00:15,781+0000 Caesium-1-1 ERROR ServiceRunner [c.c.j.p.automation.schedule.RuleInsightsUpdateJob] Error executing rule insights update job
com.querydsl.core.QueryException: Caught MySQLSyntaxErrorException for select `AO_589059_RULE_STAT_ROLLUP_MIN`.`CREATED`
from `AO_589059_RULE_STAT_ROLLUP_MIN` `AO_589059_RULE_STAT_ROLLUP_MIN`
order by `AO_589059_RULE_STAT_ROLLUP_MIN`.`CREATED` desc
limit ?
at com.querydsl.sql.DefaultSQLExceptionTranslator.translate(DefaultSQLExceptionTranslator.java:50)
at com.querydsl.sql.Configuration.translate(Configuration.java:459)
...
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'jiradb.AO_589059_RULE_STAT_ROLLUP_MIN' doesn't exist
at sun.reflect.GeneratedConstructorAccessor745.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
...
1
2
3
4
5
6
7
8
9
10
2022-06-02 17:00:24,465+0000 Caesium-1-2 ERROR anonymous [c.c.j.p.automation.schedule.AutomationRuleSchedulerJob] Error executing rule scheduler service job
com.querydsl.core.QueryException: Caught MySQLSyntaxErrorException for insert into `AO_589059_AUTOMATION_QUEUE` (`CLAIM_COUNT`, `CLIENT_KEY`, `CREATED`, `PAYLOAD`, `PRIORITY`, `RULE_ID`, `EXECUTION_UUID`)
values (?, ?, ?, ?, ?, ?, ?)
at com.querydsl.sql.DefaultSQLExceptionTranslator.translate(DefaultSQLExceptionTranslator.java:50)
at com.querydsl.sql.Configuration.translate(Configuration.java:459)
...
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'EXECUTION_UUID' in 'field list'
at sun.reflect.GeneratedConstructorAccessor745.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
...
原因
Automation for Jira の v7.3 以降に対するアップデートが、このドキュメンテーション「Automation for Jira 7.3 へのアップグレード」の要件に従って実行されていません。
Automation for Jira 7.3 は、データベース テーブルで異なるタイプの ID (
integer
ではなくbiginteger
) を使用します。以前のバージョンからアップグレードする場合はアップグレード後に ID が新しいタイプに自動で移行されますが、正常に実行するにはいくつかの前提条件となるステップを完了する必要があります。詳細は、リンク先のドキュメンテーション「Automation for Jira 7.3 へのアップグレード」をご確認ください。
ソリューション
次の手順に従って、Automation for Jira のアップデートが確実に正常に実行されるようにします。
「アプリのアンインストール」に従って Automation for Jira をアンインストールします。
Jira を停止します。
Jira データベースのバックアップを作成します。
「Automation for Jira 7.3 へのアップグレード」に従って、データをデータベース テーブルから削除します。
Postgres の場合:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
-- AUTOMATION QUEUE TABLE
delete from "AO_589059_AUTOMATION_QUEUE";
-- AUDIT LOG TABLES
delete from "AO_589059_AUDIT_ITEM_PROJECT";
delete from "AO_589059_AUDIT_ITEM_ASC_ITEM";
delete from "AO_589059_AUDIT_ITEM_CGE_ITEM";
delete from "AO_589059_AUDIT_ITEM_COMP_CGE";
delete from "AO_589059_AUDIT_ITEM";
-- RULE STAT TABLES
delete from "AO_589059_RULE_STAT";
delete from "AO_589059_RULE_STAT_ROLLUP_DAY";
delete from "AO_589059_RULE_STAT_ROLLUP_HR";
delete from "AO_589059_RULE_STAT_ROLLUP_MIN";
SQL Server 用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
-- AUTOMATION QUEUE TABLE
delete from jiraschema.AO_589059_AUTOMATION_QUEUE;
-- AUDIT LOG TABLES
delete from jiraschema.AO_589059_AUDIT_ITEM_PROJECT;
delete from jiraschema.AO_589059_AUDIT_ITEM_ASC_ITEM;
delete from jiraschema.AO_589059_AUDIT_ITEM_CGE_ITEM;
delete from jiraschema.AO_589059_AUDIT_ITEM_COMP_CGE;
delete from jiraschema.AO_589059_AUDIT_ITEM;
-- RULE STAT TABLES
delete from jiraschema.AO_589059_RULE_STAT;
delete from jiraschema.AO_589059_RULE_STAT_ROLLUP_DAY;
delete from jiraschema.AO_589059_RULE_STAT_ROLLUP_HR;
delete from jiraschema.AO_589059_RULE_STAT_ROLLUP_MIN;
SQL Server では、スクリプトで使用されている「jiraschema」という名前をデータベース スキーマの名前に置き換える必要があります。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
-- AUTOMATION QUEUE TABLE
delete from AO_589059_AUTOMATION_QUEUE;
-- AUDIT LOG TABLES
delete from AO_589059_AUDIT_ITEM_PROJECT;
delete from AO_589059_AUDIT_ITEM_ASC_ITEM;
delete from AO_589059_AUDIT_ITEM_CGE_ITEM;
delete from AO_589059_AUDIT_ITEM_COMP_CGE;
delete from AO_589059_AUDIT_ITEM;
-- RULE STAT TABLES
delete from AO_589059_RULE_STAT;
delete from AO_589059_RULE_STAT_ROLLUP_DAY;
delete from AO_589059_RULE_STAT_ROLLUP_HR;
delete from AO_589059_RULE_STAT_ROLLUP_MIN;
6. Jira を再起動します
7. Automation for Jira をインストールします。[管理] > [アプリを検索] の順に移動して、Automation for Jira を検索してインストールします。
MySQL または SQL Server データベースをご利用の場合は、次の手順に従います。
Jira をもう一度停止します。
「Automation for Jira 7.3 へのアップグレード」のステップ 5 に従って、データベースに関連するスクリプトをダウンロードします。
スクリプトをデータベースで実行します。
Jira を再起動します。
スクリプトに関する注意事項
外部キー制約を削除した後でもテーブルを変更する際にエラーが発生した場合、テーブルに予期しない外部キー制約があり、それを削除する必要がある可能性があります。 以下のクエリを実行して、テーブル内のすべての制約を特定できます。どれを削除すべきかわからない場合は、アトラシアン サポートにお問い合わせいただき、このクエリの結果を共有してください。
1
2
3
4
5
--MySQL
select * from information_schema.KEY_COLUMN_USAGE where TABLE_NAME = '<table_name>';
--MSSQL
SELECT * FROM sys.foreign_keys WHERE parent_object_id = OBJECT_ID('<table_name>');
この内容はお役に立ちましたか?