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-26.0.0-to-26.7.3

Oracle: 26.0.0 → 26.7.3 migration re-run

Upgrade
26.0.0 → 26.7.3
Database
Oracle Database Free (23ai/26ai), release 23.26.2.0.0, single node, gvenzl/oracle-free:23-slim
Topology
single container
Host
laptop (16 vCPU, 31 GB RAM)
Condition
Engines other than Postgres · third engine, re-run at 26.7.3

Environment

FieldValue
Keycloak from → to26.0.0 → 26.7.3
DatabaseOracle Database Free (23ai/26ai), release 23.26.2.0.0, single node, gvenzl/oracle-free:23-slim
JDBC driverojdbc17 + orai18n 23.26.0.0.0 in fixtures/providers/ (unchanged from the 26.7.1 run)
Schema/userkeycloak (APP_USER; user IS schema, KC_DB_SCHEMA not used)
Topologysingle container
Hostlaptop (16 vCPU, 31 GB RAM)

Procedure

docker compose up -d db        # Oracle Free first init (healthy in ~37s on this host)
docker compose up -d keycloak  # 26.0.0 (schema created)
docker compose stop keycloak && sed -i 's/^KC_VERSION=.*/KC_VERSION=26.7.3/' .env
docker compose up -d keycloak  # migrate

Results

CheckBefore (26.0.0)After (26.7.3)
Keycloak version26.0.026.7.3
migration_model26.0.026.7.3
Tables87100
User indexes218283

Master-realm token endpoint ready after migration; migration clean and additive (no DDL errors surfaced in the Keycloak log).

Still not ported (unchanged from the 26.7.1 run)

← All runs