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.
Was this helpful?