You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Any completed local pack can be rolled back. Rollback will restore the versions of all the records in this local pack as they were before the start of the update collection, in other words, before starting works on this local pack. Deleted records will be restored, and created records will be deleted.

Example

  • Before work on this local pack starts, the record had version X.
  • As a result of building this local pack, the records gets version Y.
  • When we rollback the pack, the record will have version X again.
  • Make sure that you selected the same local pack which you are going to rollback in the Admin Preferences.
  • Rollback of any local pack should not be invoked without an emergency need.
  • Use rollback cautiously. Some changes caused by the rollback may lead to data loss.

Rollback a local pack


To rollback a local pack, please complete the steps below:

  1. Navigate to Configuration → Local Pack.
  2. Open the local pack you need to rollback.
  3. Click Rollback Preview to preview the list of records that are going to be restored.
  4. Review the contents of the local pack, fix possible collisions if there are any.
  5. Click Rollback to restore records to the previous version.

Do not rollback the default local pack without an absolute necessity; otherwise, your SimpleOne instance configuration may be damaged.

Here is the expected result of the process:

Update

Rollback result

A new tableThe table is dropped from the database, deleting any data from it.
A new fieldThe field is dropped from the database, deleting any data from it.
A deleted fieldThe field is restored to the database, but the original data is lost.
A record is insertedThe record is deleted.
A record is deletedThe record is restored with its original data.

Collision processing


General process of solving the rollback collisions is the following:

  1. In the configuration pack to be rollbacked, scroll down to the Related Lists area and open the VCS Preview Log tab.
  2. Filter out records in the Good state using the Condition Builder.
  3. Open one of the records.
  4. Read the text in the Error Text field to find the error cause.
  5. Make necessary changes to the record in the JSON Copy field.

  6. Click Save or Save and Exit to apply changes.
  7. Return to the configuration pack record and click Rollback preview.
  8. Make sure that the VCS Preview Log record state has changed to Good.
  9. Repeat these steps until all records in the VCS Preview Log are in the Good state.
  10. When all records in the VCS Preview Log are in the Good state, click Rollback.


Collision cases


Collision case 1

When rolling back a local pack, a record is in the Collision state and the error is thrown: "The current version for this target entry is in a different local package.
https://{your-instance.ru}/record/sys_vcs_record/123455521418546721".

Collision solving:

Move the current record to the local pack which you need to rollback.

Collision case 2

When rolling back a local pack, a record is in the Collision state and the error is thrown: "Current record does not exist!".

Collision solving:

Continue the rollback. The collision record will be skipped.

Collision case 3

When rolling back a local pack, a record is in the Collision state and the error is thrown: "Previous version for current is not found".

Collision solving:

Continue the rollback. The collision record will be skipped.

Collision case 4

When rolling back a local pack, a record is in the Warning state and the error is thrown: "undefined column SQLERROR 42703".

Collision solving:

Continue the rollback. Columns inserted during local pack building will be deleted.

Collision case 5

When rolling back, an existing table will be deleted, but contains one or more records. The version records will be in the Skipped state and the error is thrown: "Table is not empty".

Collision solving:

Open the list of records of the table and delete all records manually.

You can find other examples of possible collisions in the Collisions processing article.

  • No labels