This document describes the migration steps applied to the o-spreadsheet data model, version by version, as implemented in src/migrations/migration_steps.ts.
- Add the
activeSheetfield to the data (set to the first sheet's name).
- Add an
idfield to each sheet (defaults to the sheet's name if missing).
- Change
activeSheetfrom a sheet name to a sheet id.
- Add a
figuresarray to each sheet (if missing).
- Normalize cell content if it is a formula: store the normalized formula in a
formulaproperty.
- Transform chart data structure: update
dataSetsin chart figures, adddataSetsHaveTitle, and convert label cell references.
- Remove single quotes from sheet names and update all references (formulas, charts, conditional formats) accordingly.
- Add design attributes to chart figures:
background,verticalAxisPosition,legendPosition, andstacked.
- De-normalize formulas to reduce exported JSON size: replace formula references with actual text and remove the
formulaproperty.
- Normalize cell formats: assign format IDs and collect all formats in a top-level
formatsobject.
- Add
isVisibleproperty to all sheets (default: true).
- Fix data filter duplication in sheets.
- Change border description structure: convert border arrays to objects with
styleandcolorproperties.
- Add
localeto spreadsheet settings (default toDEFAULT_LOCALEif missing).
- Fix data filter duplication (post saas-17.1).
- Rename
filterTabletotablesin sheets.
- Add
pivotsandpivotNextIdto the top-level data structure.
- Transform chart data structure (2): ensure chart titles are objects, and
dataSetsare arrays of objects withdataRange.
- Technical migration, does nothing but need to exist
- Change
nametofieldNamein pivot measures and dimensions; addidto measures.
- Add
weekStartto locale settings (based on locale code, default to Monday).
- Group style, format, and border into per-zone mappings in sheets; remove these properties from cell objects.
- Add
operatorto gauge chart inflection points in chart figures.
- Tables are no longer inserted with filters by default; ensure
configis present for all tables.
- Flatten cell content: convert
{ content: "value" }to just"value"in cells.
- Empty migration step for Odoo pivot custom sorting.
- Remove invalid
sortedColumnreferences in pivots if the referenced measure does not exist.
- Ensure fixed position, anchor, and offset for existing figures; remove
xandyproperties.
- Rename conditional format and data validation operators to new naming conventions.
- In scorecard charts, convert
baselineDescrfrom string to object with atextproperty.
For details and code, see src/migrations/migration_steps.ts.