Cloud is the future frontier, while we can state what we like and don't like about it, it is definitely the future of Atlassian Suite and in order to know how we can all Migrate to it, here are some basic tips on what to expect when migrating from Server to Cloud using the Confluence Cloud Migration Assistance tool. Prior to you starting your Migration, it is best practice to do a system check to ensure everything is running smooth
Pre-Migration: Plan your cloud migration. There are 6 phases:
Pre-Migration: Pre-migration checklist
Confirm your migration method
Site Import (XML) - Not recommended
Prepare access to
Confluence Server or Cloud UI
An unzipped Confluence Support Zip
Run SQL queries on the source instance
Pre-Migration: Confluence Cloud Migration Assistant checklist
Ensure you won’t exceed your cloud user limit
SQL (Postgresql)
Ensure you have the right permission
has System Administrator permission on Server instance
exists in the target cloud site
has Site Administrator permission in cloud
Check your Confluence Server version
Only support Confluence 5.10.0 or later
Support Zip
Sytem Information
Go to Administrator Configuration
Click System Information
Fix any app or add-on email addresses
SQL (Postgresql)
--ADD-ON USERS - TESTED ON POSTGRESQL
select * from cwd_user where lower_email_address like '%connect.atlassian.com%';
Use the query above to find any of these users and either delete them or update their emails to something other than @connect.atlassian.com
This step is needed if you have ever imported Confluence Cloud XML backup to Confluence Server. Otherwise, the above SQL query will return zero record.
Fix any duplicate email addresses
SQL (Postgresql)
--DUPLICATED EMAIL ADDRESSES - TESTED ON POSTGRESQL
select lower_email_address, count(lower_email_address), array_agg(user_name) as "Users with Dupe E-Mail"
from cwd_user group by lower_email_address having count(lower_email_address) > 1;
Use the query above to find duplicate email addresses, the number of times these addresses repeat, as well as the users assigned to the email address
Atlassian Accounts will automatically be created for all migrated users
Fix any duplicate usernames
SQL (Postgresql)
--DUPLICATED USERNAMES - TESTED ON POSTGRESQL
select lower_user_name, count(lower_user_name)
from cwd_user group by lower_user_name having count(lower_email_address) > 1;
Use this query above to identify any duplicate usernames
If you are using multiple Atlassian Cloud products in the same Cloud site, for example, Jira and Confluence, they will share the same user management
Rename restricted groups
SQL (Postgresql)
--RESTRICTED GROUPS - TESTED ON POSTGRESQL
select lower_group_name from cwd_group where lower_group_name in
('site-admins', 'system-administrators', 'atlassian-addons', 'atlassian-addons-admin');
Use the query above to see if these groups exist in your server instance. If they do, rename them in the server before migrating. To rename a group, you’ll need to do direct database manipulation.
It is only applied to the group’s name that is specific to cloud-related functions. There are 4 group names as in the above SQL query. The CCMA tool won’t migrate these 4 groups to the cloud.
Update your firewall allowance rules
Ensure that the domains listed on Atlassian cloud IP ranges and domains will not be blocked by any security rules before running a migration.
Additionally, allow these endpoints:
https://api.media.atlassian.com: Enables uploading of attachments
https://api-private.atlassian.com: Enables communication with Atlassian Migration Platform
https://marketplace.atlassian.com: Enables us to check that the migration assistant is up to date
https://api.atlassian.com: Enables communication with Atlassian App Migration Platform
Determine how you’ll migrate apps
The Confluence Cloud Migration Assistant will not migrate app or add-on data. If you have app data to migrate, contact vendors beforehand for advice on how to migrate their data properly.
This includes Atlassian-built apps like Confluence Questions or Team Calendars for Confluence. Refer to the following Atlassian migration ticket
Check your public access settings
SQL (Postgresql)
select spaces.spacekey, spaces.spaceid, spacepermissions.permtype from public.spacepermissions
inner join public.spaces on spacepermissions.spaceid = spaces.spaceid where spacepermissions.permtype = 'VIEWSPACE'
and spacepermissions.permgroupname is null and spacepermissions.permusername is null;
Check your Heap Allocation
At least allocate 4 GB of Heap Allocation. Refer to the KB article.
Support Zip
grep '<max-heap>' application.xml
Notify support of your migration plan
Raise a MOVE ticket
https://support.atlassian.com/contact/ - Migration support
Migration:
Install Confluence Cloud Migration Assistant (CCMA) app and run the wizard steps
Post Migration: Verify everything is working as expected
During the process of Check for Errors, if there is a space configured for Anonymous Access, the following error is displayed:
I thought that we can just ignore this and click Continue and fix later. But the following error message is displayed. When we click View errors, it brings us back to the previous page.
To proceed with the migration, click the arrow to show more information and click Continue with public access.
Then the error message will be replaced with just a warning.
We can proceed with the migration.
The list of Templates and Blueprints is missing from Space Templates and Blueprint as well as Global Templates and Blueprints.
Workaround
Try to create a page using a template and no need to publish. Refresh back the Space Templates and Blueprint as well as Global Templates and Blueprints page.
Note: It may occur only to fresh Cloud instances.
The CCMA tool doesn’t migrate the space customized blueprint template. It will automatically use the Confluence Cloud Blueprint template. This could be on purpose as the blueprint template is a little bit different between Confluence Server and Cloud.
A new group imported from the server to the cloud needs to be approved by the admin before it is displayed in the Global Permission. However, when clicking the Approve button, the UI doesn’t provide any response. The approval process seems successful though as when we refresh the browser manually, we no longer viewing a warning message of new groups found. The new group is now listed under Global Permission.
Note: CCMA tool is known to have limitation in handling Global Setting and Permission
A group from Server has the following permission:
The group name does not exist in the Cloud. The group is migrated successfully and granted Global Permissions but has the following permission:
Server: the space-admins group has Personal Space and Create Space permission.
Cloud: the space-admins group doesn't have Personal Space and Create Space permission.
Note: CCMA tool is known to have limitation in handling Global Setting and Permission
After the migration completed, some of the links in Confluence are pointing to the old URL. Some examples of broken links:
What happened?
The page id and site URL will be different in the database after the migration completed.
Workaround
Nothing we can do. Raise a migration support ticket.
Special Thanks to @Marini Marini for providing such detailed informations with Migrations on this article and what happens using the CCMA tool.
Prince Nyeche
1 comment