Oracle Apex is great. The biggest problem I have with it is using it along with source code control. Generally after making a change, the entire application gets exported and the resulting SQL script checked into source code control.
The problem is that because it's unclear what most of that exported script is doing, I have to treat is as essentially a binary file. That means changes from multiple source code branches can't be merged together, which severely limits its usefulness.
I've heard of some people exporting each page and putting those into source code control individually. First, that sounds like a major pain. Second, Apex does not allow you to import a page into any application other than the one from which it was exported. So it's hard to have two developers working in their own copy of an application at once.
Has anyone found a good way to handle Apex with source code control? I'm using Subversion, thought I doubt it makes a difference.
I've dealt with this issue as well. Another aspect of the problem is that Apex is tied so tightly with the underlying SQL database that any changes in the SQL need to be reflected as well (in other words exporting each page has other issues above and beyond being a huge pain). Actually as far as I know the shared components are not exported when you export a page as well.
We dealt with this by exporting the entire application and checking it in. Essentially, there isn't a better way at present to deal with versioning in APEX. I also remember seeing something on the Oracle APEX forum that there is a way to split the exported file into component parts, but I have not tried it.
I have come up with what I think is a reasonably good solution for this issue. The main idea is to shift development over to the developers' own workstations, and use Subversion to keep in sync and merge all the different APEX application versions.
This makes the source control workflow look like this:
That is, each developer has his own instance of the Oracle database, installed on his own workstation. As long as all the workspace and application IDs are kept in sync between the workstations, merging APEX dump files is quite easy -- and having source control ensures they stay that way.
My team has been using this approach for almost two years now with excellent results.
Based on this experience, I wrote a small article detailing the whole approach, as I hope it will be useful for other teams.
Default Apex Export application into one sql file (Apex Export). But also Apex has APEXExport Splitter, which export application into separately parts (css, template, etc.) Good way it is commit these parts into svn
1. Automating APEX Export for SVN
2. How to use source control with apex?
3. Apex-source-control
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With