You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 9 Next »
After loading a .SOP file into a retrieved pack record or after merging several local packs, some VCS records can thrown some errors. For example, the translation records on the target instance are different from the ones in retrieved pack causing data inconsistency, or any other reason.
Generally, collisions may appear during the configuration pack import process. Their leading cause is that the dependent table or record does not exist in the database.
Consider a common use case:
- We have exported the Incident table, child for the Task table.
- We import it to the instance without the Task table.
- In this case, the Incident table cannot be created on the target instance, because there is no parent table from which to inherit.
You can find the erroneous record at the VCS Preview Log related list (in the VCS Retrieved Pack section). This record has the Collision state and the appropriate Error Text containing the error cause. Erroneous records cannot be included in the saved records pack (VCS Records) bound to the retrieved pack that is used for data recovery.
To resolve a collision, follow these steps:
- In the configuration pack you need, scroll down to the Related Lists area and open the VCS Preview Log tab.
- Filter out records in the Good state using the Condition Builder.
- Open one of the records.
- Read the text in the Error Text field to find the error cause.
Make necessary changes to the record in the JSON Copy field.
In some cases, especially when the version records need complex fixes, it is preferable to configure the erroneous records on the source instance.
- Click Save or Save and Exit to apply changes.
- Return to the configuration pack record and click Prepare changes.
- Make sure that the VCS Preview Log record state has changed to Good.
- Repeat these steps until all records in the VCS Preview Log are in the Good state.
- When all records in the VCS Preview Log are in the Good state, click Import pack.
Please keep in mind that if any collisions occurred during the local pack preview, the process will be canceled on the first occasion, the others will not be shown.
If you correct the records on the source instance using the JSON Copy field, make sure to export the created local pack as a new application to save all the changes. It is necessary for saving the right configuration pack. This allows further use of the pack without throwing errors on other instances.
Collisions cases
The idea in the collision fixing process is to try to dispose of collisions in the highest level tables.
Collision case 1
When installing a configuration pack in the system, some record X is added. At the same time, it references to another record Y in this system and in this configuration pack. The Y record that the record X is referenced to does not exist. When the export admin previews the pack by clicking Preview Local Pack, the collision is thrown on this record.
Collision solving:
The solution is to add the Y record to this configuration pack on the source instance.
Collision case 2
The record X is deleted from the system. At the same time, there is a reference to this record in the configuration pack. When the export admin previews the pack by clicking Preview Local Pack, the collision is thrown on this record.
Collision solving:
The solution is to remove the X record from the configuration pack.
Collision case 3
Mismatch in the set of fields.
Details:
- A table on the source instance has the N set of fields.
- The same table with the same name on the target instance has the N-1 set of fields.
- When the export admin previews the pack containing the table with the N field set, the collision is thrown, and a message that this object is not valid, any actions on it cannot be taken.
Collision solving:
Continue import with the Warning state. In this case, the column will not be created, the table will have the N-1 set of fields.
Collision case 4
The records on the target instance are newer than in a configuration pack to install. It can be determined by the date and time of record creation. Collision-causing records will be marked with the Skipped state.
Collision solving:
- Change the state to Good. In this case, the target instance records will be updated to those from the configuration pack.
- Keep the Skipped state to save the target instance records without changes.
Collision case 5
In the configuration pack, a table is to be deleted but contains records (is not empty). Collision-causing records will be marked with the Skipped state.
Collision solving:
- Change the state to Good. In this case, the table and all records will be deleted.
- Keep the Skipped state. The table will stay as it is.
Collision case 6
A configuration pack contains objects related to the application X. The target instance does not have this application installed.
Collision solving:
The solution is to rebuild the configuration pack on the source instance in order to add records related to the missing application.
Collision case 7
Partial attributes mismatch between instances, that is, equal tables have difference in columns.
Details:
- A table on the source instance has the N set of fields.
- The same table with the same name on the target instance has the N-1 set of fields.
- The field names on source and target instances are slightly different. See the schema below.
Collision solving:
Continue import with the Warning state. In this case, the title column will not be created, the source instance will keep the number column.
Collision case 8
The collision cause is a unique key violation.
Details:
- It was discovered that the target instance contains incorrect translation record for some element X or does not contain any translation record. This record should be located in the Translations (sys_translation) table.
- This translation record for the element X has been created in an appropriate table on the target instance.
- On the source instance, a .SOP file has been assembled containing translation for the element similar to element X. The column_id, record_id and language_id fields necessary for UNIQUE CONSTRAINT forming matched up on both instances.
- This .SOP file has been uploaded on the source instance. VCS preview logs were generated.
- After loading a pack on the target instance, a collision VCS record appeared containing an Error Text more or less like this:
- "This record has a duplication of a unique key. DETAIL: Key (column_id, record_id, language_id)=(156941403909472422, 159170696512371798, 156628684306200767)."
Collision solving:
Select a more relevant (correct or up-to-date) translation record:
- If the initial record located on the target instance is more relevant, continue import. The system will ignore the collision record and the target instance record will remain unchanged.
- If the new record is more relevant, then this record should be imported. The initial record will be updated.
- No labels