Migrate a single site to multisite with SiteSync

In addition to the standard functionality to promote content between two environments, SiteSync module provides an advanced mechanism for migrating an existing Sitefinity CMS website from a project that is developed using Single site mode, to a project that is running in Multisite. This way you can add an existing website to a Sitefinity CMS multisite project and benefit from sharing content, modules, and managing multiple websites from one backend. For more information about Multisite see Multisite: Manage multiple sites.

SiteSync distinguishes whether to promote content or to migrate a website based on the following characteristics:

  • The source server is single-site
  • The destination server is multi-site

NOTE:  This is not determined by the number of sites defined in a Sitefinity instance, but whether the Multisite module is enabled or not in Administration > Modules & Services. A Sitefinity project with only one site but with the Multisite module enabled is considered multisite

NOTE: The migration process is one-to-one. You cannot send the data from more than one single site to one and the same site from a multisite instance.

With site migration, you transfer all of your existing site data to a new multisite instance. Site configurations are not transferred. You can transfer them manually. 
You can migrate all content, pages, templates, users, and roles. Relationships between content is preserved. For example, the tags and the permissions of a news item remain the same after the migration.

IMPORTANT: You must migrate users and roles before migrating content. Thus, you preserve items' permissions and avoid problems when permissions are changed after migration.

PREREQUISITES: To be able to migrate from a single to a multiple instance, you must ensure the following:

  • The Sitefinity CMS version of both the source and the target Sitefinity CMS instances must be the same.
    If you need to upgrade your single site to the latest version, see Upgrade.
  • You have activated the Site Sync module on both source and target servers.
    For more information, see Activate and deactivate modules.
  • You must have created and configured a site on the multisite instance where you want to migrate the data from the single site.
    For more information, see Create sites.
  • The languages on the source and the target sites must be the same, including the default language.
    If you are migrating a monolingual single site to a monolingual site from a multiple Sitefinity CMS instance, you must add to both the source and the target sites the same languages as the multilingual multisite instance. For more information, see Multiple site management in multilingual mode.
  • The source and the target sites must have the same modules installed.
    For more information, see Share module content.

To migrate your single site to a multisite, perform the following:

  1. Backup both the target and the source projects and their databases and do not perform the migration on your production environment
  2. Perform procedure Configure the servers for synchronization.
    When you configure the source server, Sitefinity CMS automatically recognizes when you want to setup a single to multiple site synchronization. After you enter the address and the credentials of the multisite server, a dropdown box that lists all sites from the multisite instance appears.
    1. Choose the site from the multisite instance where you want to send the single site data.
    2. If needed, change the name of the source site.
      This name is used when conflicts need to be resolved and also it is appended to the titles of the new providers that Sitefinity CMS creates during the migration. For example, if you enter ABC, the new membership provider on the target server will be titled ABC Default provider.
  3. In the main menu, click Administration » Site Sync.
  4. Click Load all data for syncing.
    This loads all available published items on your single site.

    Only published items are migrated.

  5. Select the content you want to migrate.
    If your built-in modules have custom classifications that you want to migrate, see procedure Migrate custom classifications below.

    UnderWhat do you want to sync ?, perform the following:

    1. Select one or more types of content for synchronization.
    2. Click the Change button of the content where you want to use selective sync.
      A window appears.
      Select one of the following:
      • All new or updated
        All new or updated published items from the selected type are synced.
        If you are using more than one language, you can also choose if you want to sync items in a particular language only.
      • Selected items only
        A list of all published items appears.
        Select the checkboxes of the items that you want to sync and click Done.
        If you are using more than one language, you can also choose if you want to sync items in a particular language only.
      • For more information about the items that can be migrated, see //link to Supported Content. In addition, you can also migrate Users and Roles.
      • NOTE: If you do not migrate users and roles, items that are publicly visible on your site will not be visible on the target site, since no information about the permissions is migrated.
  6. Click Sync now.
    A status report of the migration appears.
  7. Manually sync any file system based content.
    These are, for example:
    • Configuration files
    • Custom assemblies
    • Master pages
    • Themes
    • Labels

Migrate custom classifications

If a built-in module has a custom classification, you must migrate first the classification (taxonomies) then recreate the custom field on the target site, and move all other data. For more information about built-in modules, see Overview: Create content with built-in modules.

NOTE: If only dynamic modules have custom classification fields, you do not have to perform this procedure.

Perform the following:

  1. Perform the procedure above.
    In Step 4, select Classifications checkbox only.
  2. Open the target site.
  3. For each built-in module that had a custom classification field in the source site, create the same custom classification field on the target site.
    For more information, see Overview: Custom fields.
  4. Open the source site and migrate the rest of the content by performing Step 2 to Step 5 of the above procedure.
    This time, select all other items that you want to migrate.

Conflicts resolution

Classifications, users, and roles are common for all of the sites in a multisite instance. 

  • If the source site has a classification, for example, a tag whose name is the same as an already existent tag on the target server, the name of the site is appended to the name of the migrated tag. If you have a tag New on the source and the target server, after the migration, you will have two tags – New and <Source_site> New.
  • When you migrate users, Sitefinity CMS automatically creates a new provider and uploads all users in it. If the provider name already exists, it appends the name of the site to it. For example, if you have the Default provider on both source and target sites, after the migration, there will be two providers – Default and a new one <Source_site> Default.
    User nicknames must be unique across all providers. In case two nicknames are the same, Sitefinity CMS appends a single number to the end of the migrated nickname.
  • When you migrate roles, the roles are uploaded in an existing role provider. If a role name is duplicated, the name of the site is appended to the role name. For example, if the roles’ provider on the source and the target site is AppRoles and a role named Designers exists on both sites. When migrated, in the AppRoles provider there will be a role Designers and a new role <Source_site> Designers.

Was this article helpful?