Initial sync and preserve issues order

Originally asked by Pawel on 15 October 2021 (original question)


Hi,

Is there a solution to keep the issue order by key during initial synchronization with an existing project?
I want to keep the numbers on both sides. e.g. ASS-1 on Jira server and ASS-1 on Jira Cloud.

The source is Jira Server and the destination is a new empty project in Jira Cloud.

Answer by Kevin Ketchum on 18 October 2021

A couple more notes - once you complete this sync, you can set up another trigger to monitor issue create/update in your source system.

If you have done your bulk-connect correctly, then once the trigger is set up and enabled, UPDATES to the existing issues on source side will update their matching issue on target side.

HOWEVER, there is no guarantee that issue CREATED on source side will be created with the same issue key on the target side.


Answer by Pawel on 18 October 2021

Hi Kevin,

Thank you for that great answer :smile:. Sounds like a lot of work to be done.


Answer by Kevin Ketchum on 15 October 2021

I’m currently in the middle of doing this type of work.

You need to do a CSV import to the target instance that contains minimal data -

My CSV files include: Issue Type, Issue Key, Status and Summary

I used the Admin External System Import option: https://<YOURCLOUDURL>/secure/admin/ExternalImport1.jspa

In case you don’t know, this import option allows you to create issues, that can retain the issue key and status - you could include Created Date, which would set the issue to the real date it was created in your source system.

Then, you need to create ANOTHER csv file that contains only two columns: SOURCEINSTANCEKEY,TARGETINSTANCEKEY

\-The file should only include the issue list (Do not add a header)

EG

  AAA\-1,AAA\-1

  AAA\-2,AAA\-2

After that, on the source server, under Manage Apps | Exalate section use the Bulk Connect option.

- It’ll allow you to choose the connection you want to connect to and the CSV file created above

- There are advance options for syncing the rest of the issue data, existing comments, etc. I have found that sometimes this option works. Exalate support is aware of this problem and are working on a solution.

\-NOTE:  I Bulk Connect 400 \- 500 records at a time, as it can take some time.

Monitor the Sync Queue to ensure your records have completed the Bulk-Connect.

If, after the Bulk Connect is complete, you find that the issue data, attachments, etc did not sync, you need to perform a Bulk Exalate action.

To perform the Bulk Exalate, you’ll need to create a jql statement that only includes the records of the source keys you just Bulk-Connected

EG:  **issuekey in (AAA\-1,AAA\-2\)**

\- Then select Triggers (in the same area as the other Exlate options)

\- Create a trigger, and choose the Entity Type (issue) and appropriate connection.  Enter your jql in the **If** section

\- Create/Save the trigger (but do NOT set it to Active)



\- In the Trigger section, you should see the trigger (and it should show deactivated).

\-  Click on the ... button to the right of the trigger and choose Bulk Exalate:

Monitor the Sync Queue to ensure your records have completed the Bulk-Exalated.

Repeat the Bulk Connect and the Bulk Exalate steps until all your records have been connected/exalated.

- For the Bulk Exalate action, you can edit the Trigger created above rather create a new one.

I have found the above steps work - though it can take a while, depending on how many records you are working with it.