How to read Configuration Migration files

Clare
Clare
  • Updated

Pre-import diff (“Compare configuration”)

This diff report can be downloaded at the beginning of the Import process. Upload the migration file and select an organization to see the option to “Compare configuration”. Click “Compare Configuration” to download a file containing the differences between the configuration in the import file and the configuration in the selected organization.

 

Diffs are exported in a csv format containing the following columns:

Column Description
Object type The type of object being migrated (Dropdown, Entity Schema, etc)
Object Name of the object being migrated
Object Identifier A unique identifier for this object during the migration. Note that this identifier is migration specific and not an API identifier. It’s provided so it can be referenced when requesting support.
Object difference A brief description of the type of difference found in the object.
Path This field is populated when there are differences found in a specific part of a migrated object. For example, a path in an entity schema with path fields[“My Field”].is_multi indicates the config differs between the input file and target organization on the “Multi-select” option in a field called “My Field”.
Source value This field is populated when there are differences found in a specific part of a migrated object. It specifies the value of the option found at Path in the configuration in the input file.
Destination value This field is populated when there are differences found in a specific part of a migrated object. It specifies the value of the option found at Path in the configuration in the target organization.

 

There are two caveats when interpreting a pre-migration diff:

  • The diff is calculated between the imported file and the entire selected organization, not just the configuration contained in the import file.
  • The first time config migration is used to import a particular config that had previously been migrated manually, config migration may be unable to understand how to map the config in the file to the existing configuration in the selected organization, causing an unexpected set of diffs (‘creating an object / object not in import file’). This mapping can be set correctly later in config migration, but cannot be adjusted for this comparison.

Post-import diff (“Changelog”)

This changelog is displayed during the last page of config migration and represents the set of changes made to the selected organization. The same information can be downloaded in a csv format from two sources:

  1. From the changelog page displayed at the end of config migration.
  2. From the email automatically sent at the end of config migration to the user who performed the migration.

 

Diffs are exported in a csv format containing the following columns:

Column Description
Object type The type of object migrated (Dropdown, Entity Schema, etc)
Object Name of the object that was migrated
Object Identifier A unique identifier for this object during the migration. Note that this identifier is migration specific and not an API identifier. It’s provided so it can be referenced when requesting support.
Object change A brief description of the type of change made on the object.
Path This field is populated when a change was made to a specific part of a migrated object. For example, a path in an entity schema with path fields[“My Field”].is_multi indicates the entity schema was updated on the “Multi-select” option in a field called “My Field”.
Pre-migration value This field is populated when a change was made to a specific part of a migrated object. It specifies the value of the option found at Path in the configuration before the migration.
Post-migration value This field is populated when a change was made to a specific part of a migrated object. It specifies the value of the option found at Path in the configuration after the migration.

Examples

Nested Path

This example uses an entity schema called “My Entity”.

Source:

Target:

Pre-migration (“compare configuration”):

Object type Object Object identifier Object difference Path Source value Destination value
EntitySchema My Entity devel:local:ts_F02fMzQp Differs between input file and selected organization fields["My field"].is_required True False

 

Post-migration (“Changelog”):

Object type Object Object identifier Object change Path Pre-migration value Post-migration value
EntitySchema My Entity devel:local:ts_F02fMzQp Updated fields["My field"].is_required False True

Explanation: This indicates that before the migration, the “My field” field was marked required in the source organization, but not in the target organization. After the migration, the field has been updated to required in the target organization. The path can be interpreted by looking at each section separated by periods. The first section fields[“My field”] indicates the diff is within a field specified on the entity schema. The second section is_required indicates the diff is on the required option within the field.

 

Dropdown

Source:

Target:

Pre-migration (“compare configuration”)

 

Object type Object Object identifier Object difference Path Source value Destination value
Dropdown My Dropdown devel:local:sfs_V66x28W7 Differs between input file and selected organization options["Option 3"].position 0 2
Dropdown My Dropdown devel:local:sfs_V66x28W7 Differs between input file and selected organization options["Option 1"].position 2 0
Dropdown My Dropdown devel:local:sfs_V66x28W7 Differs between input file and selected organization options["Option 4"] DropdownOption: Option 4  

Post-migration (“changelog”)

 

Object type Object Object identifier Object change Path Pre-migration value Post-migration value
Dropdown My Dropdown devel:local:sfs_V66x28W7 Updated options["Option 3"].position 2 0
Dropdown My Dropdown devel:local:sfs_V66x28W7 Updated options["Option 1"].position 0 2
Dropdown My Dropdown devel:local:sfs_V66x28W7 Updated options["Option 4"]   DropdownOption: Option 4

Explanation: The order of the dropdown options “Option 1” and “Option 3” switched places. The dropdown option “Option 4” was added.

 

Unarchive (Archive doesn’t happen during config migration)

Situation: a config is archived on the target and is not archived on the source. Migrating the config causes the config to be unarchived on the target.

 

Pre-migration (“compare configuration”)

Object type Object Object identifier Object difference Path Source value Destination value
Dropdown My Dropdown devel:local:sfs_V66x28W7 Not present in selected organization      

 

Post-migration (“changelog”)

 

Object type Object Object identifier Object change Path Pre-migration value Post-migration value
Dropdown My Dropdown devel:local:sfs_V66x28W7 Updated options["Option 3"].identifier.archive_reason Made in error  
Dropdown My Dropdown devel:local:sfs_V66x28W7 Updated options["Option 1"].identifier.archive_reason Made in error  
Dropdown My Dropdown devel:local:sfs_V66x28W7 Updated options["Option 4"].identifier.archive_reason Made in error  
Dropdown My Dropdown devel:local:sfs_V66x28W7 Updated options["Option 2"].identifier.archive_reason Made in error  
Dropdown My Dropdown devel:local:sfs_V66x28W7 Updated identifier.archive_reason Made in error  

Explanation: Today, archival status is stored as an ‘archive_reason’. During config comparison, archived configs in the target organization are not detected, so the diff appears as a config that only appears in the input file. After import, the net effect is unarchiving the dropdown and all its options, so all the archive_reasons are changed from ‘Made in error’ to null.

Was this article helpful?

Have more questions? Submit a request