Determine your JCMA migration duration

Platform Notice: Data Center Only - This article only applies to Atlassian products on the Data Center platform.

Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data-Center-specific features may also work for Server versions of the product, however they have not been tested. 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.

*Except Fisheye and Crucible

Summary

The following article provides guidance on determining the time required to complete a specific migration from the Server to the Cloud using Jira Cloud Migration Assistant (JCMA).

Solution

Overview

In the process of migrating from Server to Cloud (S2C), it might be necessary to determine the duration of a specific migration plan. This knowledge base article provides a database query that retrieves the overall time taken for the JCMA migration, which includes:

  • Export task

  • User migration

  • Project data import

  • Project attachment import

Identify Migration Duration with Database Query

Use the following query to determine the duration of the migration plan, making sure to replace the placeholder <plan-name> (found in line #7) with the specified plan name for the migration. Select the query appropriate for your database language.

MySQL

1 2 3 4 5 6 7 SELECT pe.PLAN_NAME AS plan_name , FROM_UNIXTIME(pe.CREATED_TIMESTAMP/1000) AS start_date , FROM_UNIXTIME(me.UPDATED_TIMESTAMP/1000) AS finish_date , ROUND((me.UPDATED_TIMESTAMP - pe.CREATED_TIMESTAMP)/1000/60, 2) AS duration_minutes FROM AO_6FF49D_PLAN_ENTITY pe JOIN AO_6FF49D_MIGRATION_ENTITY me ON (pe.ID = me.PLAN_ID) WHERE pe.PLAN_NAME IN ('<plan name>');

PostgreSQL

1 2 3 4 5 6 7 SELECT pe."PLAN_NAME" AS plan_name , to_timestamp(pe."CREATED_TIMESTAMP"/1000) AS start_date , to_timestamp(me."UPDATED_TIMESTAMP"/1000) AS finish_date , ROUND((me."UPDATED_TIMESTAMP" - pe."CREATED_TIMESTAMP")/1000/60, 2) AS duration_minutes FROM "AO_6FF49D_PLAN_ENTITY" pe JOIN "AO_6FF49D_MIGRATION_ENTITY" me ON pe."ID" = me."PLAN_ID" WHERE pe."PLAN_NAME" IN ('<plan name>');

MSSQL

1 2 3 4 5 6 7 SELECT pe.PLAN_NAME AS plan_name , dateadd(s, pe.CREATED_TIMESTAMP/1000, '19700101') AS start_date , dateadd(s, me.UPDATED_TIMESTAMP/1000, '19700101') AS finish_date , ROUND((me.UPDATED_TIMESTAMP - pe.CREATED_TIMESTAMP)/1000/60, 2) AS duration_minutes FROM AO_6FF49D_PLAN_ENTITY pe JOIN AO_6FF49D_MIGRATION_ENTITY me ON (pe.ID = me.PLAN_ID) WHERE pe.PLAN_NAME IN ('<plan name>');

Oracle

1 2 3 4 5 6 7 SELECT pe.PLAN_NAME AS plan_name , TO_CHAR(TIMESTAMP '1970-01-01 00:00:00' + numtodsinterval(pe.CREATED_TIMESTAMP/1000, 'SECOND'), 'YYYY-MM-DD HH24:MI:SS') AS start_date , TO_CHAR(TIMESTAMP '1970-01-01 00:00:00' + numtodsinterval(me.UPDATED_TIMESTAMP/1000, 'SECOND'), 'YYYY-MM-DD HH24:MI:SS') AS finish_date , ROUND((me.UPDATED_TIMESTAMP - pe.CREATED_TIMESTAMP)/1000/60, 2) AS duration_minutes FROM AO_6FF49D_PLAN_ENTITY pe JOIN AO_6FF49D_MIGRATION_ENTITY me ON (pe.ID = me.PLAN_ID) WHERE pe.PLAN_NAME IN ('<plan name>');

Example result:

plan_name

start_date

finish_date

duration

My Test Plan

2022-03-09 14:20:00.0000

2022-03-09 15:40:00.0000

80

The unit for the column duration is minutes.

Updated on April 10, 2025

Still need help?

The Atlassian Community is here for you.