Step 1 - Plan Out Your Migration (Scaffolding)

Confluence Cloud currently does not support nested macros (See CONFCLOUD-68323).

This means integration with other apps by way of nesting will be limited.

This Atlassian 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:

Prerequisites

You have

You now understand the macro differences between Scaffolding for Confluence Server and Confluence Cloud 

You have reviewed and understood the following unsupported scenarios in Cloud as compared to Scaffolding for Confluence Server 

Guide

1. Upgrade the Scaffolding app

Update the Scaffolding app to at least version 8.25.0 through the UPM inside the Confluence administration console

  • choose the global admin cog icon

  • choose Manage apps

  • search for Scaffolding

  • make sure that the app is updated/most recent version

2. Find all the Scaffolding macros

  • first, 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 the macro usage information via the shortcut  <base-url>/admin/pluginusage.action .

  • look under  Scaffolding

  • record

    • how many Scaffolding macros are on your site

    • how many of them cannot be migrated

  • select the macro links will show you all pages that contain those macros.

Option 2: Use the SQL query below

Use the sample SQL queries below to help you gather all pages and templates that contain unsupported Scaffolding macros.

  • this SQL will provide a list of impacted page authors and the relevant page titles that 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 that 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

  • 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

Due to CCMA limitations

As a workaround

  • copy all Global Templates manually into Space Templates before the migration, in order to migrate them to Cloud

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

  1. Identify a Space that contains

    1. Space templates that are widely used in your organization and use Scaffolding macros.

    2. Pages with Live Templates that are using the Space templates.

  2. Clone the contents of that space to a new space

  3. Now you are ready to migrate, prepare a migration window as highlighted below

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

Next Steps

Queries? Problems?

Contact us via our support portal.