diff --git a/Migration.Tool.CLI/README.md b/Migration.Tool.CLI/README.md index f35dd1f5..3862e5b6 100644 --- a/Migration.Tool.CLI/README.md +++ b/Migration.Tool.CLI/README.md @@ -323,7 +323,27 @@ The migration includes: * All system fields from the *CMS_User* and *CMS_UserSettings* tables. You can customize which fields are migrated via the `MemberIncludeUserSystemFields` configuration option. See [configuration](#configuration). -* All custom fields added to the *CMS_User* and *CMS_UserSettings* tables are migrated under `CMS_Member`. +* All custom fields added to the *CMS_User* and *CMS_UserSettings* tables are migrated under `CMS_Member`. The columns specified in the `MemberIncludeSystemFields` option are appended to the `CMS_Member` table in the order in which they were specified. + As an example, take the following `CMS_Member` columns + + ```text + |MemberId|MemberEmail|...|MemberSecurityStamp| + ``` + + And the following `Migration.Tool.CLI/appsettings.json` configuration. + + ```json + { + "MemberIncludeUserSystemFields": "FirstName|LastName|UserPrivilegeLevel" + } + ``` + + This will result in the following `CMS_Member` structure after migration. + + ```text + |MemberId|MemberEmail|...|MemberSecurityStamp|FirstName|LastName|UserPrivilegeLevel|` + ``` + > If you are migrating custom fields, the `--custom-modules` migration command must be run before the `--members` command. For example: @@ -383,8 +403,8 @@ Add the options under the `Settings` section in the configuration file. | Configuration | Description | |-------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| KxConnectionString | The connection string to the source Kentico Xperience 13 database. | -| KxCmsDirPath | The absolute file system path of the **CMS** folder in the source Kentico Xperience 13 administration project. Required to migrate media library files. | +| KxConnectionString | The connection string to the source Kentico Xperience 13, Kentico 12, or Kentico 11 database. | +| KxCmsDirPath | The absolute file system path of the **CMS** folder in the source Kentico Xperience 13, Kentico 12, or Kentico 11 administration project. Required to migrate media library files. | | XbKDirPath | The absolute file system path of the root of the target Xperience by Kentico project. Required to migrate media library and page attachment files. | | XbKApiSettings | Configuration options set for the API when creating migrated objects in the target application.

The `ConnectionStrings.CMSConnectionString`option is required - set the connection string to the target Xperience by Kentico database (the same value as `XbKConnectionString`). | | MigrationProtocolPath | The absolute file system path of the location where the [migration protocol file](./MIGRATION_PROTOCOL_REFERENCE.md) is generated.

For example: `"C:\\Logs\\Migration.Tool.Protocol.log"` | diff --git a/Migration.Tool.Common/Resources.Designer.cs b/Migration.Tool.Common/Resources.Designer.cs index 568fc548..03c36cbb 100644 --- a/Migration.Tool.Common/Resources.Designer.cs +++ b/Migration.Tool.Common/Resources.Designer.cs @@ -1,227 +1,272 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace Migration.Tool.Common { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - public static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Migration.Tool.Common.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - public static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - - /// - /// Looks up a localized string similar to Attachment moved to media library, media file path: ({0}/{1}). - /// - public static string Attachment_MovedToLibrary { - get { - return ResourceManager.GetString("Attachment_MovedToLibrary", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Grouped attachment moved to media library, media file path: ({0}/{1}). - /// - public static string AttachmentGrouped_ModevToLibrary { - get { - return ResourceManager.GetString("AttachmentGrouped_ModevToLibrary", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to {0}Configuration error{1}: {2}. - /// - public static string ConfigurationError { - get { - return ResourceManager.GetString("ConfigurationError", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to {0}Possible fix{1}: {2}. - /// - public static string ConfigurationRecommendedFix { - get { - return ResourceManager.GetString("ConfigurationRecommendedFix", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Configuration value in path 'Settings.XbKApiSettings.ConnectionStrings.CMSConnectionString' is required. - /// - public static string ConfigurationValidator_GetValidationErrors_CmsConnectionString_IsRequired { - get { - return ResourceManager.GetString("ConfigurationValidator_GetValidationErrors_CmsConnectionString_IsRequired", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Section 'Settings.XbKApiSettings.ConnectionStrings' is required. - /// - public static string ConfigurationValidator_GetValidationErrors_ConnectionStrings_IsRequired { - get { - return ResourceManager.GetString("ConfigurationValidator_GetValidationErrors_ConnectionStrings_IsRequired", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Section 'Settings' is required. - /// - public static string ConfigurationValidator_GetValidationErrors_Settings_IsRequired { - get { - return ResourceManager.GetString("ConfigurationValidator_GetValidationErrors_Settings_IsRequired", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Configuration value in path 'Settings.KxCmsDirPath' is empty, it is recommended to set source instance filesystem path. - /// - public static string ConfigurationValidator_GetValidationErrors_SourceCmsDirPath_IsRecommended { - get { - return ResourceManager.GetString("ConfigurationValidator_GetValidationErrors_SourceCmsDirPath_IsRecommended", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Configuration value in path 'Settings.KxConnectionString' is required. - /// - public static string ConfigurationValidator_GetValidationErrors_SourceConnectionString_IsRequired { - get { - return ResourceManager.GetString("ConfigurationValidator_GetValidationErrors_SourceConnectionString_IsRequired", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Configuration value in path 'Settings.XbKDirPath' is required. - /// - public static string ConfigurationValidator_GetValidationErrors_TargetCmsDirPath_IsRequired { - get { - return ResourceManager.GetString("ConfigurationValidator_GetValidationErrors_TargetCmsDirPath_IsRequired", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Configuration value in path 'Settings.XbKConnectionString' is required. - /// - public static string ConfigurationValidator_GetValidationErrors_TargetConnectionString_IsRequired { - get { - return ResourceManager.GetString("ConfigurationValidator_GetValidationErrors_TargetConnectionString_IsRequired", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Section 'Settings.XbKApiSettings' is required. - /// - public static string ConfigurationValidator_GetValidationErrors_TargetKxpApiSettings_IsRequired { - get { - return ResourceManager.GetString("ConfigurationValidator_GetValidationErrors_TargetKxpApiSettings_IsRequired", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Configuration value in path 'Settings.UseOmActivityNodeRelationAutofix' must fit one of: {0}. - /// - public static string ConfigurationValidator_GetValidationErrors_UseOmActivityNodeRelationAutofix_MustFit { - get { - return ResourceManager.GetString("ConfigurationValidator_GetValidationErrors_UseOmActivityNodeRelationAutofix_MustF" + - "it", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Configuration value in path 'Settings.UseOmActivitySiteRelationAutofix' must fit one of: {0}. - /// - public static string ConfigurationValidator_GetValidationErrors_UseOmActivitySiteRelationAutofix_MustFit { - get { - return ResourceManager.GetString("ConfigurationValidator_GetValidationErrors_UseOmActivitySiteRelationAutofix_MustF" + - "it", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to {0}Configuration warning{1}: {2}. - /// - public static string ConfigurationWarning { - get { - return ResourceManager.GetString("ConfigurationWarning", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Document relationship is currently not supported - related to: {0}. - /// - public static string Document_Relationship_NotSupported { - get { - return ResourceManager.GetString("Document_Relationship_NotSupported", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to {0} ExplicitPrimaryKeyMapping of {1} is required.. - /// - public static string Exception_MappingIsRequired { - get { - return ResourceManager.GetString("Exception_MappingIsRequired", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Press any key to exit program.... - /// - public static string ProgramAwaitingExitMessage { - get { - return ResourceManager.GetString("ProgramAwaitingExitMessage", resourceCulture); - } - } - } -} +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Migration.Tool.Common +{ + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + public class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Resources.ResourceManager ResourceManager + { + get + { + if (object.ReferenceEquals(resourceMan, null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Migration.Tool.Common.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to Attachment moved to media library, media file path: ({0}/{1}). + /// + public static string Attachment_MovedToLibrary + { + get + { + return ResourceManager.GetString("Attachment_MovedToLibrary", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Grouped attachment moved to media library, media file path: ({0}/{1}). + /// + public static string AttachmentGrouped_ModevToLibrary + { + get + { + return ResourceManager.GetString("AttachmentGrouped_ModevToLibrary", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0}Configuration error{1}: {2}. + /// + public static string ConfigurationError + { + get + { + return ResourceManager.GetString("ConfigurationError", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0}Possible fix{1}: {2}. + /// + public static string ConfigurationRecommendedFix + { + get + { + return ResourceManager.GetString("ConfigurationRecommendedFix", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Configuration value in path 'Settings.XbKApiSettings.ConnectionStrings.CMSConnectionString' is required. + /// + public static string ConfigurationValidator_GetValidationErrors_CmsConnectionString_IsRequired + { + get + { + return ResourceManager.GetString("ConfigurationValidator_GetValidationErrors_CmsConnectionString_IsRequired", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Section 'Settings.XbKApiSettings.ConnectionStrings' is required. + /// + public static string ConfigurationValidator_GetValidationErrors_ConnectionStrings_IsRequired + { + get + { + return ResourceManager.GetString("ConfigurationValidator_GetValidationErrors_ConnectionStrings_IsRequired", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Section 'Settings' is required. + /// + public static string ConfigurationValidator_GetValidationErrors_Settings_IsRequired + { + get + { + return ResourceManager.GetString("ConfigurationValidator_GetValidationErrors_Settings_IsRequired", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Configuration value in path 'Settings.KxCmsDirPath' is empty, it is recommended to set source instance filesystem path. + /// + public static string ConfigurationValidator_GetValidationErrors_SourceCmsDirPath_IsRecommended + { + get + { + return ResourceManager.GetString("ConfigurationValidator_GetValidationErrors_SourceCmsDirPath_IsRecommended", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Configuration value in path 'Settings.KxConnectionString' is required. + /// + public static string ConfigurationValidator_GetValidationErrors_SourceConnectionString_IsRequired + { + get + { + return ResourceManager.GetString("ConfigurationValidator_GetValidationErrors_SourceConnectionString_IsRequired", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Configuration value in path 'Settings.XbKDirPath' is required. + /// + public static string ConfigurationValidator_GetValidationErrors_TargetCmsDirPath_IsRequired + { + get + { + return ResourceManager.GetString("ConfigurationValidator_GetValidationErrors_TargetCmsDirPath_IsRequired", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Configuration value in path 'Settings.XbKConnectionString' is required. + /// + public static string ConfigurationValidator_GetValidationErrors_TargetConnectionString_IsRequired + { + get + { + return ResourceManager.GetString("ConfigurationValidator_GetValidationErrors_TargetConnectionString_IsRequired", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Section 'Settings.XbKApiSettings' is required. + /// + public static string ConfigurationValidator_GetValidationErrors_TargetKxpApiSettings_IsRequired + { + get + { + return ResourceManager.GetString("ConfigurationValidator_GetValidationErrors_TargetKxpApiSettings_IsRequired", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Configuration value in path 'Settings.UseOmActivityNodeRelationAutofix' must fit one of: {0}. + /// + public static string ConfigurationValidator_GetValidationErrors_UseOmActivityNodeRelationAutofix_MustFit + { + get + { + return ResourceManager.GetString("ConfigurationValidator_GetValidationErrors_UseOmActivityNodeRelationAutofix_MustF" + + "it", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Configuration value in path 'Settings.UseOmActivitySiteRelationAutofix' must fit one of: {0}. + /// + public static string ConfigurationValidator_GetValidationErrors_UseOmActivitySiteRelationAutofix_MustFit + { + get + { + return ResourceManager.GetString("ConfigurationValidator_GetValidationErrors_UseOmActivitySiteRelationAutofix_MustF" + + "it", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0}Configuration warning{1}: {2}. + /// + public static string ConfigurationWarning + { + get + { + return ResourceManager.GetString("ConfigurationWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Document relationship is currently not supported - related to: {0}. + /// + public static string Document_Relationship_NotSupported + { + get + { + return ResourceManager.GetString("Document_Relationship_NotSupported", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} ExplicitPrimaryKeyMapping of {1} is required.. + /// + public static string Exception_MappingIsRequired + { + get + { + return ResourceManager.GetString("Exception_MappingIsRequired", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Press any key to exit program.... + /// + public static string ProgramAwaitingExitMessage + { + get + { + return ResourceManager.GetString("ProgramAwaitingExitMessage", resourceCulture); + } + } + } +} diff --git a/README.md b/README.md index fd304fd7..c37ffdce 100644 --- a/README.md +++ b/README.md @@ -10,15 +10,22 @@ This repository is part of the [Xperience by Kentico Migration Tool](https://git The Kentico Migration Tool transfers content and other data from **Kentico Xperience 13**, **Kentico 12** or **Kentico 11** to **Xperience by Kentico**. +This repository contains several README documents containing information necessary for the correct usage of the Kentico Migration Tool. Namely: + +- [Migration CLI](./Migration.Toolkit.CLI/README.md) -- information about the necessary set up before running the Kentico Migration Tool. +- [Usage Guide](./docs/Usage-Guide.md) -- information about what kind of projects the Kentico Migration Tool supports. +- [Supported Data](./docs/Supported-Data.md) -- lists all available data for migration +- [Migration Protocol](./Migration.Toolkit.CLI/MIGRATION_PROTOCOL_REFERENCE.md) -- provides information about the results of the migration and required manual steps, etc. + ## Library Version Matrix | Xperience Version | Library Version | -| ----------------- |-----------------| -| == 29.1.0 | == 1.0.0 | -| == 29.2.0 | == 1.1.0 | -| == 29.3.3 | == 1.2.0 | -| == 29.5.2 | == 1.3.0 | -| == 29.5.2 | == 1.4.0 | +| ----------------- | --------------- | +| 29.6.0 | 1.4.0 | +| 29.5.2 | 1.3.0 | +| 29.3.3 | 1.2.0 | +| 29.2.0 | 1.1.0 | +| 29.1.0 | 1.0.0 | ## Dependencies @@ -34,15 +41,17 @@ Follow the steps below to run the Kentico Migration Tool: 3. Configure the options in the `Migration.Tool.CLI/appsettings.json` configuration file. See [`Migration.Tool.CLI/README.md - Configuration`](./Migration.Tool.CLI/README.md#Configuration) for details. 4. Rebuild the solution and restore all required NuGet packages. 5. Open the command line prompt. -6. Navigate to the output directory of the `Migration.Tool.CLI` project. +6. Navigate to the output directory of the `Migration.Tool.CLI` project. (under `.\Migration.Toolkit.CLI\bin\Debug\net8.0\`) 7. Run the `Migration.Tool.CLI.exe migrate` command. - The following example shows the command with all parameters for complete migration: ```powershell - Migration.Tool.CLI.exe migrate --sites --custom-modules --users --settings-keys --page-types --pages --attachments --contact-management --forms --media-libraries --data-protection --countries + .\Migration.Tool.CLI.exe migrate --sites --custom-modules --users --settings-keys --page-types --pages --attachments --contact-management --forms --media-libraries --data-protection --countries --custom-tables --members --categories ``` + - You can migrate your projects iteratively. For repeated runs bypass depency checks by using the `--bypass-dependency-check` parameter, if you know that required dependencies were already migrated succesfully. + 8. Observe the command line output. The command output is also stored in a log file (`logs\log-.txt` under the output directory by default), which you can review later. 9. Review the migration protocol, which provides information about the result of the migration, lists required manual steps, etc. @@ -51,9 +60,9 @@ Follow the steps below to run the Kentico Migration Tool: The data is now migrated to the target Xperience by Kentico instance according to your configuration. See [`Migration.Tool.CLI/README.md`](./Migration.Tool.CLI/README.md) for detailed information about the migration CLI, configuration options, instructions related to individual object types, and manual migration steps. -## Full Instructions +## Full Requirements -View the [Usage Guide](./docs/Usage-Guide.md) for more detailed instructions. +View the [Usage Guide](./docs/Usage-Guide.md) for information about what kind of projects the Kentico Migration Tool supports. ## Changelog of recent updates