Migrate a single site to a multisite instance
If you have a single Sitefinity CMS site and you want to move it to a multisite Sitefinity CMS instance, you can use the Staging & Syncing module. The module automatically recognizes when you try to move data from a single site instance to a multisite one.
Migration of a single site is not the same as synchronization between servers. Before you synchronize data between servers, you make a copy of the database from the source to the target. For more information, see Synchronize data between two servers. When you are migrating a site, you move all the data from a single site to a particular site from the multisite instance without editing the database.For more information about the content that is supported for synchronization, see Step 4 below.
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 Staging and Syncing 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:
- 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.
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.
- Choose the site from the multisite instance 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.
- In the main menu, click Administration » Staging & Syncing.
- 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.
UnderWhat 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 Synchronized 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.
- 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.
Permissions, roles, and migration
When migrating your site to a multisite instance, you need to be aware that when you migrate roles, the permissions associated with these roles are not migrated. Therefore, for
each role you need to manually configure permissions. You do this in
Administration »
Permissions »
By Role.
Following are a few examples of such cases when issues with permissions surface:
- Classifications, taxonomies, tags
- Backend pages
Since backend pages are not migrated, permissions for them are not migrated as well. As a result, some of the migrated roles may not have access to specific backend pages after migration.
- Forms
To enable users with migrated roles to have access to newly created forms, you need to manually add permissions to these roles to access the forms.
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.