Migrate to 26.3
If you haven’t installed uc-local-apex-dev yet, you can find the setup instructions here.
Make sure you are on 26.2 before you start. Do the previous migrations if not.
Changes
Section titled “Changes”- DB 23.26.1.0 → 23.26.2.0 (DB files are compatible — the database upgrades in place, no dump/restore needed)
- ORDS 26.1.0 → 26.1.2
- New scripts
install.sh: one-shot installer that runssetup.sh, pulls images, brings the stack up, waits for the DB and ORDS to be ready, bakes in the ORDS gateway-mode config (and restarts ORDS), and runsafter-first-db-start.shnon-interactively — only relevant for fresh installs, not for in-place migrations.upgrade-apex.sh: dedicated script to upgrade the APEX version (split out ofafter-first-db-start.sh); verifies theapex-imageslayout and hardens the image copy step.
- Enhanced scripts
after-first-db-start.sh: pre-checks for required commands (sql,docker,unzip,curl/wget) and reports any that are missing before continuing; reusesORACLE_PASSWORDfor the APEX InternalADMINpassword setup.upgrade-apex.sh: disables the strong-admin-password rule so the generated alphanumeric password is accepted.- APEX download now works with either
curlorwget(#30). - Non-interactive SQLcl calls are forced to a dumb terminal, fixing output/behavior over SSH and in CI.
- Prefer the
docker compose(v2 plugin) over the deprecated standalonedocker-compose(v1) when both are present.
- Bug fixes
- Removing a user / dropping all objects no longer errors when the user has no APEX workspace.
- Fixed the call to the password-change script and added error handling (#28).
- Hardened
user_exists_in_dbso the count is parsed correctly and defaults to0. - Added an
apex-pathto prevent an error during a clean install, and made the APEX installation exit cleanly when finished.
- Tooling
- New manually-triggered CI workflow (
test-db-upgrade.yml) that installs the current version, seeds a comprehensive schema, upgrades on the same datafiles, and asserts nothing was lost or invalidated (including APEX-schema integrity). This is what validates that the DB bump in this release is datafile-compatible. - New CI workflow (
test-clean-install.yml) that exercisesinstall.shon a fresh environment.
- New manually-triggered CI workflow (
- Documentation
- Expanded Windows setup instructions (WSL2) and various doc/typo fixes.
Migration
Section titled “Migration”Make sure your database is running:
docker psOtherwise start the database:
./local-26ai.sh startBackup the database
Section titled “Backup the database”This will backup all schemas and APEX workspaces that were created with the local-26ai.sh create-user script. If you have additional schemas or workspaces you need to back them up manually.
./local-26ai.sh backup-allCheck the backups/export directory to confirm the backup was created successfully.
Stop the containers
Section titled “Stop the containers”./local-26ai.sh stopSwitch branch
Section titled “Switch branch”git fetchgit checkout 26-3Give permission to all scripts
Section titled “Give permission to all scripts”chmod +x ./local-26ai.sh ./setup.sh ./scripts/*.shStart the containers
Section titled “Start the containers”./local-26ai.sh startThe database will automatically upgrade from 23.26.1.0 to 23.26.2.0 on first start. Monitor the logs until you see DATABASE IS READY TO USE! and ORDS reports it is initialized:
docker logs -f local-26aidocker logs -f local-26ai-ordsVerify
Section titled “Verify”Navigate to http://localhost:8181/ords/apex to confirm ORDS is serving APEX.
After a major restart it is normal for some application objects to be temporarily marked INVALID; they recompile automatically on first use. If you want to recompile everything up front, connect as SYS and run:
begin sys.utl_recomp.recomp_serial();end;/Optional: delete old docker images
Section titled “Optional: delete old docker images”docker image lsdocker image rm container-registry.oracle.com/database/free:23.26.1.0docker image rm container-registry.oracle.com/database/ords:26.1.0