Changes between Version 3 and Version 4 of BluePrintUpgrades

02/13/16 16:15:25 (6 years ago)
Pat Tressel



  • BluePrintUpgrades

    v3 v4  
    1313For other software, people are used to automatic upgrades.  Even the (very complex) Windows operating system auto-upgrades.
    14 What can make an Eden upgrade problematic?  There are two types of visible changes:
     14What can make an Eden upgrade problematic?  There are two types of changes that are visible to the sysadmin or user:
    1616* Structural changes: These are changes that affect data structure and file layout.
    2121  This would affect users, and might require retraining.
     23These issues would be present even if the site were running an unmodified version of Eden using a supplied template.
     24If the site has made modifications to the code, even in a template, and those modifications conflict with changes in
     25the upgrade, then the two sets of modifications need to be reconciled.  Note configuration changes are expected, and
     26need to be supported in the normal case above.
     28Expected issues beyond the above, that can arise if the site has code modifications, are:
     30* An API change may require the site to alter their code to use the modified API.
     31* Alteration by the site of code outside of the site's template may lead to merge conflicts.
     32* If both the site and upgrade have database schema changes, then those changes need to be reconciled and merged.
     34Of these issues, the most potentially destructive is a database schema change, as without proper preparation,
     35running the upgraded version of Eden can lead to data loss.  The Web2py migration does not understand changes
     36such as renaming a column -- that is interpreted as deleting a column and adding a new one.  This can happen
     37regardless of whether the site has made any changes whatsoever in their code.  Also, requiring the sysadmin to
     38investigate the upgrade's schema changes, and write scripts to convert their database, is a significant burden.
     39Addressing database migration is thus likely to be the largest reduction in upgrade effort.
     41Support for upgrades can proceed in stages:
     43* Deal with the case in which there are no significant site code changes.
     44  That is, changes are limited to configuration and relatively cosmetic UI changes.
     45* Assume additional changes are confined to the site's template, but may include use of a now-deprecated
     46  or altered API.
     47* Deal with site database schema changes.
     48* Consider what can be done to ease conflict resolution in UI code.
     49* Likewise, for conflict resolution in model and controller code, beyond schemas.
     51Some potential conflicts may be avoided up front by convincing sites not to alter framework code, and to avoid
     52directly editing models and controllers.  For changes that may be of benefit to other users, encourage sites to
     53make their changes generic and contribute them back to the main repository.
     55Here, we consider the first stage, in which the upgrade issues are due to changes in Eden rather than in site
     56changes.  Since directory layout changes are rare, this can be deferred until such a change is planned.
     58== Configuration Changes ==
     60== Database Schema Changes ==