Skip to content

Commit 3d61aba

Browse files
authored
Merge pull request #540 from Kentico/develop
Release 3.19.0
2 parents cd841d5 + 5ca4e03 commit 3d61aba

File tree

3 files changed

+28
-14
lines changed

3 files changed

+28
-14
lines changed

KVA/Migration.Tool.Source/Providers/ClassMappingProvider.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -313,12 +313,14 @@ private void ExecReusableSchemaBuilders()
313313
patcher.RemoveCategories();
314314

315315
var fi = new FormInfo(patcher.GetPatched());
316-
return fi.GetFormField(fieldIdentifier.FieldName) switch
316+
var patchedFieldInfo = fi.GetFormField(fieldIdentifier.FieldName) switch
317317
{
318318
{ } field => field,
319319
_ => throw new InvalidOperationException(
320320
$"Invalid reusable schema field builder for field '{fieldIdentifier.ClassName}': Class '{fieldIdentifier.ClassName}' is missing field '{fieldIdentifier.FieldName}'")
321321
};
322+
patchedFieldInfo.Name = fb.TargetFieldName;
323+
return patchedFieldInfo;
322324
}
323325
default:
324326
{

Migration.Tool.CLI/README.md

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -169,19 +169,22 @@ Pages from older product versions can be migrated to either to [website channel
169169
- Linked pages are currently not supported in Xperience by Kentico. By default, the migration creates standard page copies for any
170170
linked pages on the source instance. This behavior can be changed by implementing [custom handling of linked pages](../Migration.Tool.Extensions/README.md#customize-linked-page-handling).
171171
- Page permissions (ACLs) are currently not migrated into Xperience by Kentico.
172-
- Migration of page builder content is only available for Kentico Xperience 13.
172+
- Migration of Page Builder content is only available for Kentico Xperience 13.
173173

174174
Additionally, you can define [custom migrations](../Migration.Tool.Extensions/README.md) to change the default behavior, for example to migrate page content to widgets in Xperience by Kentico.
175175

176-
#### Page builder content
176+
#### Page Builder content
177177

178-
> :warning: Page builder content migration is only available when migrating from Kentico Xperience 13.
178+
> :warning: Page Builder content migration is only available when migrating from Kentico Xperience 13.
179179
180-
By default, JSON data storing the page builder content of pages and custom page templates is migrated directly without
180+
By default, JSON data storing the Page Builder content of pages and custom page templates is migrated directly without
181181
modifications. On the target Xperience by Kentico instance, the migrated data can work in the Page Builder's legacy
182182
compatibility mode. However, we strongly recommend updating your codebase to the new Xperience by Kentico components.
183183

184-
The Kentico Migration Tool provides an advanced migration mode for page builder content that utilizes API discovery on
184+
> [!TIP]
185+
> Read more about different [approaches of migrating Page Builder content](https://docs.kentico.com/x/migrate_widgets_from_KX13_guides) and their the pros and cons in our documentation.
186+
187+
The Kentico Migration Tool provides an advanced migration mode for Page Builder content that utilizes API discovery on
185188
the source instance. To learn more details and how to configure this feature,
186189
see [Source instance API discovery](#source-instance-api-discovery).
187190

@@ -441,7 +444,7 @@ Add the options under the `Settings` section in the configuration file.
441444
| EntityConfigurations._<object table name>_.ExcludeCodeNames | Excludes objects with the specified code names from the migration. |
442445
| CreateReusableFieldSchemaForClasses | Specifies which page types are also converted to [reusable field schemas](#convert-page-types-to-reusable-field-schemas). This option cannot be combined with usage of `ReusableSchemaBuilder` in [custom class mappings](../Migration.Tool.Extensions/README.md#custom-class-mappings).
443446
|
444-
| OptInFeatures.QuerySourceInstanceApi.Enabled | If `true`, [source instance API discovery](#source-instance-api-discovery) is enabled to allow advanced migration of page builder content for pages and page templates. |
447+
| OptInFeatures.QuerySourceInstanceApi.Enabled | If `true`, [source instance API discovery](#source-instance-api-discovery) is enabled to allow advanced migration of Page Builder content for pages and page templates. |
445448
| OptInFeatures.QuerySourceInstanceApi.Connections | To use [source instance API discovery](#source-instance-api-discovery), you need to add a connection JSON object containing the following values:<br />`SourceInstanceUri` - the base URI where the source instance's live site application is running.<br />`Secret` - the secret that you set in the _ToolkitApiController.cs_ file on the source instance. |
446449
| OptInFeatures.CustomMigration.FieldMigrations | Enables conversion of media selection text fields to content item assets or media library files. See [Convert text fields with media links](#convert-text-fields-with-media-links) for more information. |
447450

@@ -531,16 +534,16 @@ Add the options under the `Settings` section in the configuration file.
531534

532535
> :warning: **Warning** – source instance API discovery is only available when migrating from Kentico Xperience 13.
533536
534-
By default, JSON data storing the page builder content of pages and custom page templates is migrated directly without
535-
modifications. Within this content, page builder components (widgets, sections, etc.) with properties have their
537+
By default, JSON data storing the Page Builder content of pages and custom page templates is migrated directly without
538+
modifications. Within this content, Page Builder components (widgets, sections, etc.) with properties have their
536539
configuration based on Kentico Xperience 13 form components, which are assigned to the properties on the source
537540
instance. On the target Xperience by Kentico instance, the migrated data can work in the Page Builder's legacy
538541
compatibility mode.
539542

540543
However, we strongly recommend updating your codebase to the new Xperience by Kentico components.
541544
See [Editing components in Xperience by Kentico](https://docs.xperience.io/x/wIfWCQ) to learn more.
542545

543-
To convert page builder data to a format suitable for the Xperience by Kentico components, the Kentico Migration Tool
546+
To convert Page Builder data to a format suitable for the Xperience by Kentico components, the Kentico Migration Tool
544547
provides an advanced migration mode that utilizes API discovery on the source instance. The advanced mode currently
545548
provides the following data conversion:
546549

@@ -553,8 +556,8 @@ provides the following data conversion:
553556

554557
- To use source instance API discovery, the live site application of your source instance must be running and available
555558
during the migration.
556-
- Using the advanced page builder data migration **prevents the data from being used in the Page Builder's legacy
557-
compatibility mode**. With this approach, you need to update all page builder component code files to
559+
- Using the advanced Page Builder data migration **prevents the data from being used in the Page Builder's legacy
560+
compatibility mode**. With this approach, you need to update all Page Builder component code files to
558561
the [Xperience by Kentico format](https://docs.xperience.io/x/wIfWCQ).
559562
- The source instance API discovery feature only processes component properties defined using `[EditingComponent]`
560563
attribute notation. Other implementations, such as properties edited via custom view components in the Razer view, are
@@ -647,8 +650,8 @@ You can test the source instance API discovery by making a POST request
647650
to `<source instance live site URI>/ToolApi/Test` with `{ "secret":"__your secret string__" }` in the body. If your
648651
setup is correct, the response should be: `{ "pong": true }`
649652

650-
When you now [migrate data](#migrate-data), the tool performs API discovery of page builder component code on the source
651-
instance and advanced migration of page builder data.
653+
When you now [migrate data](#migrate-data), the tool performs API discovery of Page Builder component code on the source
654+
instance and advanced migration of Page Builder data.
652655

653656
## Convert pages or custom tables to Content hub
654657

Migration.Tool.Extensions/README.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,9 @@ You can see a sample: [SampleWidgetMigration.cs](./CommunityMigrations/SampleWid
154154

155155
After implementing the migration, you need to [register the migration](#register-migrations) in the system.
156156

157+
> [!TIP]
158+
> For a complete end-to-end example, see our guide on [how to migrate widget data as reusable content](https://docs.kentico.com/x/migrate_widget_data_as_reusable_content_guides) in the Kentico documentation.
159+
157160
## Customize widget property migrations
158161

159162
In the `Migration.Tool.Extensions/CommunityMigrations` folder, create a new file with a class that implements the `IWidgetPropertyMigration` interface. Implement the following properties and methods required by the interface:
@@ -176,6 +179,9 @@ You can see samples:
176179

177180
After implementing the migration, you need to [register the migration](#register-migrations) in the system.
178181

182+
> [!TIP]
183+
> For common widget property transformation scenarios, see [our technical deep-dive guide](https://docs.kentico.com/x/transform_widget_properties_guides) in the Kentico documentation.
184+
179185
## Migrate pages to widgets
180186

181187
This migration allows you to migrate pages from the source instance as [widgets](https://docs.kentico.com/x/7gWiCQ) in the target instance. This migration can be used in the following ways:
@@ -239,6 +245,9 @@ You can see a sample: [SamplePageToWidgetDirector.cs](./CommunityMigrations/Samp
239245

240246
After implementing the content item director, you need to [register the director](#register-migrations) in the system.
241247

248+
> [!TIP]
249+
> For a complete practical example, see [how to convert child pages to widgets](https://docs.kentico.com/x/convert_child_pages_to_widgets_guides) in the Kentico documentation.
250+
242251
## Register migrations
243252

244253
Register the migration in `Migration.Tool.Extensions/ServiceCollectionExtensions.csas a `Transientdependency into the service collection:

0 commit comments

Comments
 (0)