Skip to main content

Story:
As a SF developer I want it to be easier to assign upgrade scripts to my upgrade. The system should tell me what my source- and target model version is and display any available upgrade scripts for the timeframe I am in. Additionally, I want the system to suggest upgrade script assignments to me if there have been other script assignments with intermediate upgrades.

Problem:
When developing in branches and in DTAP environments, the Dev environment (nearly) always has a different release cycle than Test, Acc, and Prod. The Develop branch/environment receives way more intermediate upgrades before the model version is merged back to Release, or Main. With these intermediate upgrades sometimes upgrade scripts are required (usually for more advanced data migration).

Currently, the SF allows the developers to add an upgrade script for all upcoming upgrades, or to one specific upgrade (from-model version X, to-model version Y). These data migration scripts are usually only required once, so adding to a specific version is the most logical thing to do, but this functionality is hidden very deep in the menu, requires multiple steps and screens and is therefore not user-friendly.

However, when later upgrading the Test environment with the Release branch, you want the upgrade script to be run again. The problem is that this is a different upgrade (the from-model version is older, and the to-model version is newer) and thus the assignment of the data migration upgrade script is not accounted for, and skipped. This problem re-occurs with an even larger time gap when upgrading the Production environment using the Main branch.

If not paying close attention to what is happening, or triple checking all from- and to-model versions and script assignments, the data can become a mess or even corrupt and the only way to solve that is by restoring a backup of your database after the upgrade has failed.

Possible solution:
Add an additional detail tab to the data migration screen, that shows all assigned upgrade scripts to intermediate model versions, and allows the user to include, exclude, or modify the upgrade scripts (or deeplink to functionality to edit). So that it is clear what scripts are included in your currently generated application upgrade. This creates a much more user-friendly way in managing your upgrade scripts and prevents accidental (un)assignments that can have unwanted consequences.
 

 

Be the first to reply!