Plan your Cloud migration
Documents to help you prepare to migrate your Atlassian Server products.
Prevent migration failure by upgrading to Jira Cloud Migration Assistant 1.7.3 or higher
We are ending support for all older versions of Jira Cloud Migration Assistant.
You won’t be able to use the following versions:
Jira Cloud Migration Assistant 1.7.1 and lower
We are improving our migration tooling and expanding their existing capabilities. For a smoother and more stable migration experience, we recommend upgrading to the latest version of Jira Cloud Migration assistant within six weeks of it release. Learn more about this announcement and how to upgrade.
For any further details or technical concerns, contact us.
The Jira Cloud Migration Assistant automatically reviews your data for common errors. It will check that:
all users have valid and unique email addresses
none of the project names or keys conflict with project names or keys that already exist in Cloud
the migration assistant is up to date
However, it won’t check for everything, so you’ll also need to run through this pre-migration checklist before starting a migration.
To complete the pre-migration checks, you may need:
access to the Jira Server or Cloud user interface
access to an unzipped Jira Support ZIP. Learn how to create a Support ZIP file
access to an unzipped Jira XML backup. Learn how to create an XML backup
to run SQL queries on the source instance
Sync your active external user base to make sure all users and groups are migrated properly as part of your user strategy. This also ensures that data remains linked to the correct users during the migration. Learn more about user migration strategies
If you’re using an external identify provider to manage your users, make sure they are active and synced to Jira before migrating.
Select the cog icon in the top right corner.
Select User Management.
Select User Directories.
Select Sync.
You can cross-reference the Epoch timestamps in a site such as https://www.epochconverter.com/.
Make sure directories that are needed are set to Active.
1
2
3
4
5
6
7
grep "com.atlassian.crowd.directory.sync.laststartsynctime" <Support Zip Location>/auth-cfg/directoryConfigurationSummary.txt
Example Output:
com.atlassian.crowd.directory.sync.laststartsynctime: 1586922783853
com.atlassian.crowd.directory.sync.laststartsynctime: 1586911983804
com.atlassian.crowd.directory.sync.laststartsynctime: 1579025414214
1
2
3
4
5
6
7
8
9
grep "Active:" <Support Zip Location>/auth-cfg/directoryConfigurationSummary.txt
Example Output:
Active: true
Active: true
Active: true
Active: false
Active: true
Note that the Jira Cloud Migration Assistant migrates:
all users and groups
users and groups related to the selected projects
Make sure Jira is running on a supported version, otherwise, the Migration Assistant will not work. Learn more about the supported versions
Select the cog icon in the top right corner.
Select System.
Select System Information in the left navigation panel.
Look for Jira Version.
1
2
3
4
5
grep "<product name" <Support Zip Location>/application-properties/application.xml
Example Output:
<product name="Jira" version="8.7.1"/>
Invalid or duplicated email addresses are not supported by Jira Cloud and can’t be migrated with the Jira Cloud Migration Assistant. To avoid blocking your migration, you can use the assistant to identify such email addresses and then either fix them manually or apply one of the suggested options to fix them automatically during migration, for example by merging duplicates or deactivating related users.
Open the Jira Cloud Migration Assistant.
In the Assess and prepare users card, select Begin assessing. You’ll be moved to the page with empty results.
To start the assessment, select Begin assessing. Once the assessment is complete, you’ll see the number of email addresses that don’t meet the requirements. You can then view the details and choose how you’d like to fix these addresses.
Learn more about assessing and preparing users
Ensure that the user who runs the migration:
has System Administrator global permission on the Server instance
exists in the target Cloud site
has Site Administrator permission in Cloud
Make sure the groups in your Cloud site don't have the same name as any groups in your Server site, unless you're intentionally trying to merge them. Learn how the Migration Assistant manages group name conflicts
Additionally, there might be some migration scenarios that result in your Server site ending up with add-on users. Add-on users are not common in the Server world and they might cause a few issues during the migration to Cloud. Before migrating, delete or update any of these add-on users.
Use the query below to find any of these users and either delete them or update their emails to something other than @connect.atlassian.com:
1
2
--ADD-ON USERS - TESTED ON POSTGRESQL
select * from cwd_user where lower_email_address like '%connect.atlassian.com%';
The migration assistant connects to Atlassian domains in order to run the migration. If any domain gets blocked by either a firewall or a reverse proxy, the migration will fail. Ensure that IP addresses and domains for Atlassian Cloud products won’t be blocked by any security rules before running a migration.
Learn more about IP addresses and domains used by Cloud products
You can migrate app data using the Jira Cloud Migration Assistant. Contact the Marketplace Partner (app vendor) for the apps you want to migrate to check if the migration path they have built supports the Jira Cloud Migration Assistant, and for advice on how to migrate their data efficiently.
Learn more about assessing and migrating apps
You can configure your Jira Server or Jira Cloud site to be publicly available to the internet. Unless you intentionally want your content to be public, you should review your project permissions. If you have projects that are publicly available in Jira Server, remove their anonymous access setup before migrating to Cloud. You can always make these projects public again after migrating.
This will flag projects that have any permission set to Anyone.
1
2
3
4
5
6
7
8
9
10
11
SELECT p.id, p.pname, ps.name, sp.permission_key FROM project p
INNER JOIN nodeassociation na ON
p.id = na.source_node_id
INNER JOIN schemepermissions sp ON
na.sink_node_id = sp.scheme
INNER JOIN permissionscheme ps ON
na.sink_node_id = ps.id
WHERE na.source_node_entity = 'Project'
AND na.sink_node_entity = 'PermissionScheme'
AND sp.perm_type='group'
AND sp.perm_parameter is null;
This will get a list of filters which has share type as "share with everyone" (i.e. global)
1
2
3
4
5
// get list of filters which has share type as "share with everyone" (i.e. global)
SELECT sr.filtername, sp.sharetype AS current_share_state, sr.username AS owner_name, sr.reqcontent AS JQL
FROM searchrequest sr
INNER JOIN sharepermissions sp ON sp.entityid = sr.id
WHERE sp.sharetype='global' and sp.entitytype ='SearchRequest';
This will get a list of Agile boards which has share type as "share with everyone" (i.e. global)
1
2
3
4
5
6
// get list of Agile boards which has share type as "share with everyone" (i.e. global)
SELECT DISTINCT "rv"."NAME" as "Board Name", sr.filtername, sp.sharetype AS current_share_state, sr.username AS owner_name
FROM "AO_60DB71_RAPIDVIEW" as rv
INNER JOIN searchrequest sr ON sr.id = rv."SAVED_FILTER_ID"
INNER JOIN sharepermissions sp ON sp.entityid = sr.id
WHERE sp.sharetype='global' and sp.entitytype ='SearchRequest';
This will get a list of Dashboards which has share type as "share with everyone" (i.e. global)
1
2
3
4
5
6
// get list of Dashboard which has share type as "share with everyone" (i.e. global)
SELECT DISTINCT pp.id as Dashboard_Id, pp.pagename AS Dashboard_name, sp.sharetype AS current_share_state, pp.username AS owner_name
FROM portalpage pp
INNER JOIN sharepermissions sp ON sp.entityid = pp.id
WHERE sp.sharetype='global' and sp.entitytype ='PortalPage'
ORDER BY pp.id;
Depending on the number of issues or projects to be migrated, Jira Server might experience an OutOfMemory error that can crash the entire migration. To prevent this, ensure that your application is running with at least 4GBs of Heap Allocation. Learn how to increase Jira's application memory
Also, make sure to review your Open Files limit. Ideally, it should be as close as possible to 32768. Getting the number of Open Files set to your system may vary depending on the Linux distribution. If unsure of how to check that via system commands, generate a Support Zip, open the application-properties/application.xml file and search for <max-file-descriptor>. If this number is close to 32768, adjust it accordingly. This doesn’t apply to those running Windows. Learn more about the 'Too many open files' error
Ensure the value of the Xmx and Xms is at least 4096m or 4g:
1
2
3
4
5
grep -i "xmx"" <Support Zip Location>/application-properties/application.xml
Example Output:
<JVM-Input-Arguments>-Djava.awt.headless=true -Datlassian.standalone=JIRA -Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true -Xms4g -Xmx4g
Ensure the value of <max-file-descriptor> is close to 32768:
1
2
3
4
5
grep -i "<max-file-descriptor>"" <Support Zip Location>/application-properties/application.xml
Example Output:
<max-file-descriptor>32,000</max-file-descriptor>
Go to /jira-installation-directory/bin/setenv.sh file and confirm both parameters below are greater than 4096m or 4g (if it was set in gigabytes instead of megabytes):
1
2
JVM_MINIMUM_MEMORY="4096m"
JVM_MAXIMUM_MEMORY="4096m"
Go to /jira-installation-directory/bin/setenv.bat file and confirm both parameters below are greater than 4096m or 4g (if it was set in gigabytes instead of megabytes):
1
2
JVM_MINIMUM_MEMORY="4096m"
JVM_MAXIMUM_MEMORY="4096m"
Learn how to increase Jira application memory
If you're using the migration assistant in order to merge Jira Cloud sites, there might be a slight shift in timezones for timestamps in issues. Jira Cloud uses UTC. If the Jira Server instance uses any other timezone, it shifts in hours based on the difference from UTC.
The workaround is to add a system flag to the Jira Server instance -Duser.timezone=UTC. Learn more about this workaround
To confirm your Server timezone:
Select the cog icon in the top right corner.
Select System.
Select System Information in the left navigation panel.
Look for jvm.system.timezone.
You can also use the following query to verify your Server timezone:
1
2
3
4
5
grep "<jvm.system.timezone>" <Support Zip Location>/application-properties/application.xml
Example Output:
<jvm.system.timezone>America/New_York</jvm.system.timezone>
To avoid migration conflicts, rename shared configuration (workflows or permission schemes) in your Server instance that have the same name as shared configuration in your Cloud site. If we find a conflict we may alter the name of the configuration during migration. Learn how the Migration Assistant links your data
Atlassian's Cloud plans have different storage limits. Before migrating, take a few minutes to check how much disk space you're currently using and review information about storage and limits in Cloud. Learn more about Cloud storage
To ensure that your Server data migrates successfully, check the status of your data using the Database Integrity Checker (native to Jira Server) and the Integrity Check for Jira app from the Atlassian Marketplace.
Other checks and actions to perform:
all required fields must have a value and should not be null
reactivate any archived projects that you want to migrate
reactivate any inactive user directories that you intend to migrate
Learn more about cleaning up your server instance
Things to consider when setting up your Cloud site:
Your Cloud site must have the same Jira products enabled as your Server site, if there are groups containing product access to those respective products. For example, if you’ve Jira Core and Jira Software on your Server site, you need both Jira Work Management (formerly Jira Core) and Jira Software on your Cloud site, even if you're not migrating Jira Core projects. This is so that all your users and groups migrate successfully.
Note: If you have Jira Software or Jira Service Management license, you can use Jira Work Management for free.
Ensure that the language of your Cloud site is the same as the language on your Server site. Some fields may not migrate properly if the languages are different.
If you’re using Atlassian Access, you should set it up before migrating and check the details on how to best migrate your users. Learn more about user migration strategies
Before you run a migration, we recommend that you back up your current Jira Server site. If your destination Cloud site has existing data, back up your Jira Cloud site as well.
We strongly recommend you run a test migration before running your production migration.
Learn more about testing your migration
If you’re performing your migration over a weekend or holiday, or will have over 1,000 users in Cloud, we recommend getting in touch with our migration support team at least one to two months in advance. That way, we can ensure we have extra support on hand during your migration.
Learn more about support for Cloud migrations
We have a number of channels available to help you with your migration.
For migration planning information, visit the Atlassian Migration Program website.
For technical issues or support with strategy and best practices, get in touch with our support team.
For peer advice, ask the Atlassian Community.
For expert guidance, work with an Atlassian Partner.
For more help, check out the Cloud migration guide or register for our Cloud migration demos with live chat Q&A.
Was this helpful?