• Products
  • Documentation
  • Resources

Jira Cloud Migration Assistant pre-migration checklist

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.

Before you begin

To complete the pre-migration checks, you may need:

1. Create a user migration plan [mandatory]

External directories

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.

Sync using the Jira Server user interface

  1. Select the cog icon in the top right corner.

  2. Select User Management.

  3. Select User Directories.

  4. Select Sync.

Verify using your Support Zip

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.

Last External Users Sync Verification

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

Active External Directory Verification

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

2. Check your Jira Server version [mandatory]

Make sure Jira is running on a supported version, otherwise, the Migration Assistant will not work. Learn more about the supported versions

Verify using the Jira Server user interface

  1. Select the cog icon in the top right corner.

  2. Select System.

  3. Select System Information in the left navigation panel.

  4. Look for Jira Version.

Verify using your Support Zip Product Version Verification

1 2 3 4 5 grep "<product name" <Support Zip Location>/application-properties/application.xml Example Output: <product name="Jira" version="8.7.1"/>

3. Fix any invalid and duplicated email addresses [mandatory]

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.

  1. In the Assess and prepare users card, select Begin assessing. You’ll be moved to the page with empty results.

  2. 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

4. Make sure you have the right permissions [mandatory]

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

5. Check for conflicts with group names [mandatory]

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.

Verify using SQL (tested on Postgres)

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%';

6. Update your firewall allowance rules [mandatory]

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

7. Determine how you’ll migrate apps [mandatory]

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

8. Check your public access settings [mandatory]

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.

Verify using SQL (tested on Postgres)

Projects

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;

Filters

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';

Agile Boards

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'; 

Dashboards

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;

9. Review your Server setup [mandatory]

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

Verify using your support zip

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>

Alternative ways to verify heap sizing

If on Linux

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"

If on Windows, not running as a service 

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"

If on Windows, running as a service

Learn how to increase Jira application memory

10. Check your Server timezone [mandatory, if merging Cloud sites]

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

Verify using your Jira Server user interface

To confirm your Server timezone:

  1. Select the cog icon in the top right corner.

  2. Select System.

  3. Select System Information in the left navigation panel.

  4. Look for jvm.system.timezone.

Verify using your Support Zip

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>

11. Fix any duplicate shared configuration names [recommended]

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

12. Check you won't exceed storage limits [recommended]

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

13. Prepare your Server instance [recommended]

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

14. Prepare your Cloud site [recommended]

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

15. Back up your data [recommended]

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.

16. Run a test migration [recommended]

We strongly recommend you run a test migration before running your production migration.

Learn more about testing your migration

17. Notify support of your migration plan [recommended]

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

More information and support

We have a number of channels available to help you with your migration.

Additional Help