Automation for Jira のアップグレードまたはアップデート後に Automation for Jira が動作しない

robotsnoindex


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

要約

Automation が予想どおりに動作していません。既存のルールを変更しようとすると、UI にエラーが表示されます。

環境

Automation for Jira v7.3 以降

Jira 7.7.0 以降

診断

  • 最近、Jira をアップグレードした可能性があります。
  • 最近、Automation for Jira を v7.3 以降にアップデートしました。
  • Automation for Jira が予想どおりに動作していません。プロジェクトの自動化を表示すると、次のエラーが表示される場合があります

    Error
    Error while updating rule. Error
    Please reload and try again.


  • Automation テーブルに関連するエラーがログに表示されます。次にいくつかを例示します。

    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)
    	...
    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)
    	...
    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)
    	...
    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 は、データベース テーブルで、integer ではなく異なるタイプの ID、biginteger を代用します。以前のバージョンからアップグレードする場合は ID はアップグレード後に新しいタイプに自動で移行されますが、成功させるにはいくつかの前提条件となるステップを完了する必要があります。詳細については、リンク先のドキュメント「Automation for Jira 7.3 へのアップグレード」をご参照ください

ソリューション

次の手順に従って、Automation for Jira のアップデートが確実に正常に実行されるようにします。

  1. アプリのアンインストール」に従って Automation for Jira をアンインストールします。
  2. Jira を停止します。
  3. Jira データベースのバックアップを作成します。
  4. Automation for Jira 7.3 へのアップグレード」に従って、データをデータベース テーブルから削除します。

    For Postgres
    -- 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";
    For SQL Server
    -- 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;

    (info) For SQL Server, you'll need to replace the "jiraschema" name used above with the name of your database schema.

  5. For MySql
    -- 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 をインストールします。
    1. [管理] > [アプリを検索] の順に移動して、Automation for Jira を検索してインストールします。

MySQL または SQL Server データベースをご利用の場合は、次の手順に従います。 

  1. Jira をもう一度停止します。
  2. Automation for Jira 7.3 へのアップグレード」のステップ 5 に従って、データベースの関連スクリプトをダウンロードします。
  3. スクリプトをデータベースで実行します。
  4. Jira を再起動します。

Note about scripts

外部キー制約を削除した後でもテーブルを変更する際にエラーが発生した場合、テーブルに予期しない外部キー制約があり、それを削除する必要がある可能性があります。 以下のクエリを実行して、テーブル内のすべての制約を特定できます。どれを削除すべきかわからない場合は、アトラシアン サポートにお問い合わせいただき、このクエリの結果を共有してください。

--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>');




最終更新日 2024 年 5 月 30 日

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

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