The Keycloak Upgrade Ledger

Every upgrade we have rehearsed, with the environment stated and the clock running.

2026-08-31 · run 2026-08-31-oracle-index-audit-port

Oracle index-audit port

What was done

Ported bin/index-audit.sh / bin/index-audit.py to Oracle, closing the last engine for the schema-correctness gate.

The port

Result

--- 121 index definitions applied to this database: 121 correct, 0 missing, 0 wrong shape, 0 unverified (9 skipped: table dropped in a later version)

The 26.7.3 Oracle schema is correct by definition — including the function-based indexes (IDX_GROUP_ATT_BY_NAME_VALUESUBSTR("VALUE",1,250)), which is the Oracle spelling of the same index that produced the postgres false-positive earlier.

Remaining Oracle tooling

Verification

ClaimEvidence
Function-based expressions fold to the changelog formSUBSTR("VALUE",1,250) vs substr(value,1,250) matched, 121/121
LONG column handled without ORA-00932PL/SQL block + DBMS_OUTPUT, no errors
Recycle-bin ghosts excludedWHERE index_name NOT LIKE 'BIN$%'

← Back to the Ledger