Server to Cloud → Cloud to Cloud
This article guides you through the steps to take for the migration of a Server to Cloud synchronization to a Cloud to Cloud synchronization.
You are migrating from your Server instance to a Cloud instance
Your (new) Cloud instance has Backbone installed
You are synchronizing to a Cloud instance which also has Backbone installed
There are no errors in the troubleshooting tab of the configuration. If there are, please solve these first.
You need to have Python 3 installed on your computer
You need these scripts: splitMappingFile.py, translateMappingFile.py
Things to Keep in Mind
In a Cloud to Cloud synchronization, both partners have access to the synchronization
You don't need a synchronization user anymore, this is replaced by an automatically created user "Backbone Issue Sync for Jira"
These steps assume the following setup:
Project SA - project that should be migrated from Server to Cloud
Project CA - project SA after it has been migrated from Server to Cloud
Project CB - partner project already on Cloud
Step-1: Export your synchronization data
Stop the original running synchronization
Export the synchronization config for this synchronization
Download the synced issue data for this synchronization (open the synchronization config and click ••• > Download synchronized issues)
Step-2: Migrate your server project to the Cloud
Migrate the project SA using the Jira Cloud Migration Assistant. We’ll call the new Cloud project in this guide CA.
Step-3: Modify the mapping files
python -m pip install requestsin the root directory of the scripts to install the requests module for python
python translateMappingFile.py -f <path_to_your_file_from_step_1-3> --bu1 <url_of_your_jira_server> --u1 <user_for_your_jira_server> --p1 <password_for_your_jira_server> --bu2 <url_of_your_jira_cloud> --u2 <user_for_your_jira_cloud> --p2 <access_token_for_your_jira_cloud>. This command will create a new file. You can find out the file name by analyzing the last line of the output: e.g.
saving json to /Users/myuser/20230512103931_sync_info_pairs.json-converted.json
Split the file into processable chunks by running
python splitMappingFile.py -f <path_to_created_file>
You now have multiple files called
chunkedMappingFile-X.jsonin your current working directory
Step-4: Create a new synchronization
Go to (the new Jira Cloud instance for) project CA and create a new synchronization with project CB. Note: it's important to set the synchronization up on project CA, not on project CB.
Accept the synchronization request in Project CB on Instance B
Import the synchronization config that you exported in step 2 or create a new config
chunkedMappingFile-X.json: Upload the synced issue data for these issues (click ••• > Pair existing issues > Pair existing issues synced with Backbone before)
In the synchronization config, check every tab ('Issue types', 'Fields - mappings' etc.) for validation errors – these will appear in yellow warning boxes. These warnings can appear due to custom IDs (issue type IDs, field IDs, etc) being different in the new Jira instance. Find any errors and correct them.
Step-5: Start the synchronization
Start the new synchronization
In the new synchronization, trigger a resync in both directions (with only the summary field, so the resync doesn't take long). This is done in order to recreate the information in the Sync info panel.
Once you have verified everything is working correctly, delete the original synchronization. This will also delete the old information in the sync info panel.
Still Unclear? Reach Out to Us
If you need help with any of these migration steps, reach out to us via firstname.lastname@example.org.