Step 1 - Plan Out Your Migration (Scaffolding)
Confluence Cloud currently does not support nested macro (See CONFCLOUD-68323) which means integration with other apps by way of nesting will be limited.
This documentation lists the Confluence macros that go through changes when converted to the new editor in Confluence Cloud.
Use the steps on this page to plan for complete migration from Scaffolding Server to Scaffolding Cloud:
You have reviewed everything on the previous page, Migrating from Scaffolding Server to Scaffolding Cloud.
You have reviewed the feature differences document and now understand
Macro differences between Scaffolding for Confluence Server and Confluence Cloud
Unsupported scenarios in Cloud as compared to Scaffolding for Confluence Server
1. Upgrade the Scaffolding app
Update the Scaffolding app to at least version 8.25.0 through the UPM inside the Confluence administration console.
Go to the cog icon > Manage apps
Search for Scaffolding. Make sure that the app is updated.
2. Find all the Scaffolding macros
⚠ Make sure that the site search indexes are up to date
Complete the steps below to assess data compatibility between Scaffolding Server and Cloud.
Upon completion, you will know which data will not be compatible with Scaffolding Cloud after migration.
Choose one of the 2 options below:
Option 1: Use the Macro Usage details page
The Macro Usage page will give you the number of Scaffolding macros on your site, and also the pages that contain those macros.
Go to Administration > Macro Usage. Or access it via the shortcut <base-url>/admin/pluginusage.action .
Look under Scaffolding. Take note of how many Scaffolding macros are on your site, and how many of them cannot be migrated. In this example, the ones marked will not be migrated to Cloud.
Clicking on the macro links will show you all pages that contain those macros.
Option 2: Use the SQL query below
The sample SQL query below to help you gather all pages and templates that contain unsupported Scaffolding macros
⚠ This example uses PostgreSQL query syntax, please adjust usage according to your database syntax. Also, limit the outcome to a smaller scope if needed (using limit may help) to avoid performance issues.
This SQL will provide a list of impacted page authors and the relevant page titles which currently contain Scaffolding macros that are unavailable in the Cloud
select s.spacekey, s.spacename, c.title as "Page Title", um.username from content c, spaces s, user_mapping um left join cwd_user cu on um.username = cu.user_name where c.spaceid = s.spaceid and c.contenttype = 'PAGE' and c.prevver is null and c.content_status = 'current' and c.creator = um.user_key and c.title in (SELECT c.title FROM CONTENT c JOIN BODYCONTENT bc ON c.contentid = bc.contentid JOIN SPACES s ON c.spaceid = s.spaceid WHERE c.prevver IS NULL AND c.contenttype IN ('PAGE', 'BLOGPOST') AND bc.body LIKE '%ac:name="hidden-data"%' or bc.body LIKE '%ac:name="repeating-data"%' or bc.body LIKE '%ac:name="get-data"%' or bc.body LIKE '%ac:name="excerpt-data"%' or bc.body LIKE '%ac:name="eval-data"%' or bc.body LIKE '%ac:name="set-data"%' or bc.body LIKE '%ac:name="label-options"%' or bc.body LIKE '%ac:name="group-data"%') order by s.spacekey, c.title
This SQL will provide a list of impacted page authors and the relevant template titles which currently contain Scaffolding macros that are unavailable in the Cloud.
select s.spacekey, s.spacename, p.templatename as "Template Title", um.username from pagetemplates p left join spaces s on p.spaceid = s.spaceid left join user_mapping um on p.creator = um.user_key --left join where p.prevver is null --and p.creator = um.user_key and p.content LIKE '%ac:name="hidden-data"%' or p.content LIKE '%ac:name="repeating-data"%' or p.content LIKE '%ac:name="get-data"%' or p.content LIKE '%ac:name="excerpt-data"%' or p.content LIKE '%ac:name="eval-data"%' or p.content LIKE '%ac:name="set-data"%' or p.content LIKE '%ac:name="label-options"%' or p.content LIKE '%ac:name="group-data"%' order by s.spacekey, p.templatename ;
3. Prepare the Scaffolding data in Server
Know your Scaffolding structure and data in server, to anticipate incompatibilities in Cloud after migration
As the Scaffolding server is more versatile than Scaffolding Cloud, it is important that admins understand what's inside their scaffolding structure, and anticipate what is not migratable.
It's worth the time to check the main templates that others are using and remove the structures that are incompatible with Cloud. The following documentation can help you with this decision
Take note that Global templates will not be migrated automatically and has to be manually migrated instead.
Due to CCMA limitations, Global templates will not be automatically migrated (Bug report: MIG-190 - Consider making the Confluence Assistant migrating Global Templates).
As a workaround, copy all Global Templates manually into Space Templates before the migration, in order to migrate them to Cloud. You may copy the migrated templates back to Global templates after the successful migration.
Detailed step-by-step instructions are available on this page - Global Template is not automatically migrated to Cloud.
4. Create a staging instance, and perform a test migration on sample data. (This is a recommended best practice step)
Create a Staging environment licensed by a Developer license.
Create a snapshot of the current Confluence server, and clone it for the staging instance.
Identify a Space that contains
Space templates that are widely used in your organization and use Scaffolding macros.
Pages with Live Templates that are using the Space templates.
Clone the contents of that space to a new space
Now you are ready to migrate, prepare a migration window as highlighted below
Go through the Test migration as highlighted in Steps 2 & 3
5. Schedule the migration window
To estimate the time you will need for the migration steps, we recommend reviewing all of the steps before executing. Depending on the size of the data and the complexity of the existing template configuration, it may take a few hours to complete these steps. We advise you to schedule a maintenance window in your organization to perform the migration.