Skip to content

Migrate to 25.3

If you haven’t installed uc-local-apex-dev yet, you can find the setup instructions here.

Make sure you are on 25.2 before you start. Do the previous migrations if not.

  • DB 23.7 → 23.8 (DB files are compatible)
  • ORDS Developer 24.4 → ORDS 25.2
    • Includes migration from ords-developer to the ords image because of deprecation.
  • New scripts

Make sure your database is running:

Terminal window
docker ps

Otherwise start the database:

Terminal window
local-23ai.sh start

This will backup all schemas and APEX workspaces that where created with the local-23ai.sh create-user script. If you have additional schemas or workspaces you need to backup them manually.

Terminal window
local-23ai.sh backup-all

Now check the backups/export directory if the backup was created successfully.

Optionally also back up the oradata files. This can take a moment, mine is about 10GB big. Make sure that ./backups/oradata does not exist.

Terminal window
source ./scripts/util/load_env.sh
docker exec $CONTAINER_NAME bash -c "echo 'shutdown immediate;
exit' | sqlplus / as sysdba && exit"
docker cp $CONTAINER_NAME:/opt/oracle/oradata ./backups/oradata
Terminal window
# copy images out of the old ORDS container
docker cp local-ords:/opt/oracle/apex/24.1.0/images .
# rename the images directory to apex-images
mv images apex-images
# delete things we do not need anymore
rm .env.ords
rm -r ords-secrets
# add ORDS relevant environment variables
echo "DBSERVICENAME=\"FREEPDB1\"" >>.env
echo "DBHOST=\"23ai\"" >>.env
echo "DBPORT=\"1521\"" >>.env
echo "FORCE_SECURE=\"false\"" >>.env
Terminal window
local-23ai.sh stop

If you don’t have the repository cloned yet, you can clone from GitHub.

Terminal window
git fetch
git checkout 25-3
Terminal window
chmod +x ./local-23ai.sh ./setup.sh ./scripts/*.sh
Terminal window
local-23ai.sh start

If you use HTTPS, you need to know go to https://localhost:8443/ords to access ORDS.

Run this script as the sys user. You can use sqlcl: sql -name local-23ai-sys or with the SQL Developer connection local-23ai-sys.

Terminal window
declare
l_username varchar2(100);
begin
select creator
into l_username
from PUBLICSYN where SNAME = 'APEX_UTIL'
fetch first 1 row only;
execute IMMEDIATE ' update ' || l_username || q'!.wwv_flow_platform_prefs
set VALUE = 10000
where NAME = 'ACCOUNT_LIFETIME_DAYS'
!';
commit;
end;
/
Terminal window
docker image ls
docker image rm {image_name}

(The new SQLcl version also uses this variable to output debug information. As some scripts read the output of SQLcl, it can cause issues.)

If you don’t have it in your .env file, you can proceed without any changes.