Migrate a single site to multisite with SiteSync
In addition to the standard functionality to promote content between two environments, the 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 mode. 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.
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 in your license. A Sitefinity CMS 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 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 are 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-site 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 multisite 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.
- You must enable Migration mode. Perform the following:
In the Sitefinity CMS backend of your source site, navigate to Administration » Settings » Advanced » SiteSync and select Enable migration mode, then save the changes.
To migrate your single site to a multisite, perform the following:
- Backup both the target and the source projects and their databases and do not perform the migration on your production environment.
- Perform procedure Configure the servers for synchronization.
IMPORTANT: To configure Sitefinity CMS for migrating your site, on Step 5 of procedure, select the Migration mode checkbox.
After you click Add this server button, a new window appears.
- In the dropdown box that lists all sites from the multisite instance, select the site where you want to send the single-site data.
- 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.
- Click Save changes.
- In the main menu, click Administration » Site Sync.
- Click Load all data for syncing.
This loads all available published items on your single site.
Only published items are migrated.
- 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.
Under What do you want to sync ?, perform the following:
- Select one or more types of content for synchronization.
- 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 Which content and settings are synced. 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.
- Click Sync now.
A status report of the migration appears.
- 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:
-
Perform the procedure above.
In Step 4, select Classifications checkbox only.
- Open the target site.
- 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.
- 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.