Uploaded image for project: 'UX Product'
  1. UX Product
  2. UXPROD-1815

support for upgrading schemas without complete reload of data (DB migrations) - PoC + devops guide



    • XXL < 30 days
    • XXL is the largest available. This item is likely larger.
    • Core: Platform
    • 9
    • R1
    • R1
    • R1
    • R1
    • R1
    • R2
    • R1
    • R2


      (Note: Q3 work include a PoC and initial devops migration guide, rollout and additional Platform functionality is postponed to Q4)

      Currently in FOLIO, if there is a change to the schema used by a storage module, there is no upgrade path for the data already in the module. As we now have test deployments and are trying to move towards production deployments, this will be critical for ongoing testing and operations.

      This lack has been identified as Technical Debt by the Technical Council.

      Some solution for schema upgrades and migrating data will be needed for all storage modules. The solution could include multiple components. For example, maybe one part of the solution is to include data updates the the Definition of Done for each development team, and maybe there's something that could be added to the core to make it easier to create these migrations. That's just for illustration. The important thing is that FOLIO needs a way to address address schema updates and corresponding data changes that can be consistent across modules.

      SysOps identified these sub-issues:

      • Ability to roll back an upgrade
      • Consider the wider scope of how upgrades will occur in FOLIO systems
      • Downtime considerations, can we limit or have no downtime for an application?
      • May need additional work in modules/Okapi/RMB
      • Would want schema upgrade included in Definition of Done

      FOLIO June meeting TC tech debt slides:

      TestRail: Results


          Issue Links



                Taras_Spashchenko Taras Spashchenko
                tod Tod Olson
                Jakub Skoczen Jakub Skoczen
                0 Vote for this issue
                12 Start watching this issue



                  TestRail: Runs

                    TestRail: Cases