Most likely you land here because you need to migrate APEX Applications/Workspaces from one database to another, correct? You are in the right place!
We’ll use the APEXExport for this end.
Here you have a quick summary of the steps to use the tool, assuming:
- The source APEX instance is at least 4.2.4.
- The target instance must be 4.2.4 or higher.
Also, be aware that the APEX installation (the APEX and FLOWS_FILES schemas) cannot be exported in this manner or in any other manner.
So the APEX itself must pre-exist, what we’ll do is migrate the workspaces from one installation to another.
1. Use database Export utilities (Datapump or Legacy Export, be aware of the limitations of each) to generate a dumpfile with all DB objects and data that your APEX applications need to run.
This will normally be the objects in the schemas that your APEX workspaces are dependent upon.
2. Run the APEXExport twice as follows:
2.1 First run it using “-expWorkspace” to export all workspaces (This will generate a w*.sql script for each workspace)
java oracle.apex.APEXExport -db localhost:1521:MYDB -user system -password systems_password -expWorkspace
2.2 Now run it using “-instance” which will generate a f*.sql script for every application and shared component.
java oracle.apex.APEXExport -db localhost:1521:MYDB -user system -password systems_password -instance
Note that that workspace export should export all of the shared components from the workspaces.
Note that this does not mention RESTful services but if using the APEXExport from 4.2.4 or higher, they will be included.
1. Import the dumpfile generated for the regular database schemas your APEX Application use.
2. Import the workspaces via sqlplus as per:
2.1 connect sys / as sysdba
2.2 alter session set current_schema = APEX_040200;
2.3 run the scripts to create the workspaces
This will create the workspaces with the same workspace IDs as the source DB.
This also prevents the need to modify the workspace ID contained in each of the application exports.
3. From the same session as above, accomplish the import of each of the application exports.
SQL> @.sql SQL> @.sql [...] SQL> @.sql
I hope it helps!