The below tool is very useful based on my experience because lots of people are manually doing this with their own limitation and errors. Hope this will be very good tool for oracle to provide in future releases.
For the last several months I have been working on building tools and defining processes to support our Oracle APEX development teams. We are working with multiple clients in Germany and other countries as well.
We maintain software that was built over many years, and we have to make frequent changes to those systems.
The first two tools that are available for the Oracle community are:
The installer uses SQLcl under the hood to actually run the SQL scripts. The core engine is very simple. It will execute SQL files that it finds by iterating through the file system and listing all files that exist.
It uses regular expressions in order to figure out a mapping between a file system path and the matching connection pool. It can be configured in multiple ways so that there is no requirement for a specific layout of the file system.
The exporter uses SQLcl together with DBMS_METADATA to export Oracle database objects, APEX applications, ORDS REST modules, and everything as files into the file system.
This enables you to support different workflows:
- use it only once at the beginning to create a baseline of files, then only make all future changes through those files under version control.
- make changes in the database and spool it into the file system for deployment continuously
You can find all the details on the GitHub page: https://github.com/daust/opal-tools.
I have even recorded a YouTube video to explain it: https://www.youtube.com/watch?v=gdudGocohpk&feature=youtu.be
The focus lied on simplicity and robustness.
We have been using it for over a year now in multiple real-world client projects and it saves us a lot of time and headaches.
I do hope you will enjoy it. Please test it, comment on it, file enhancement requests and bugs for it to make it an even better experience for all in the community.
Thanks to Dietmar