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:
- From the changelog page displayed at the end of config migration.
- 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.