Step 1 - Plan Out Your Migration (Scaffolding)

Use the steps on this page to plan for complete migration from Scaffolding Server to Scaffolding Cloud:

Prerequisites

Guide

1. Upgrade the Scaffolding app

  • Update the Scaffolding app to at least version 8.25.0 through the UPM inside Confluence administration console.
    1. Go to    >   Manage apps
    2. Search for Scaffolding. Make sure that the app is updated.

2. Find all the Scaffolding macros

  • (warning) 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

  1. The Macro Usage page will give you the number of Scaffolding macros on your site, and also the pages that contain those macros.
  2. Go to  Administration  >  Macro Usage. Or access it via the shortcut  <base-url>/admin/pluginusage.action .
  3. Look under  Scaffolding. Take note of how many Scaffolding macros that are on your site, and how many of them cannot be migrated. In this example, the ones marked will not be migrated to Cloud.
  4. 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 contains unsupported Scaffolding macros

(warning)  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 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 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 Scaffolding server is more versatile than Scaffolding Cloud, it is important that admins understand what's inside their scaffolding structure, and anticipate what are not migratable. 
  • It's worth the time to check the main templates that others are using, and removing the structures that are incompatible in Cloud. The following documentations can help you with this decision

Take note that Global templates will not be migrated automatically and has to be manually migrated instead.

4. Create a staging instance, and perform a test migration on sample data. (This is a recommended best practice step)


  1. Identify a Space that contains
    1. Space templates that are widely used in your organization and uses 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. We advise you to schedule a maintenance window in your organization to perform the migration.