如何使用 Oracle Apex 处理版本控制
Oracle Apex 很棒。我遇到的最大问题是将它与源代码控制一起使用。通常,进行更改后,整个应用程序将被导出,并将生成的 SQL 脚本签入源代码控制。
问题是,因为不清楚大部分导出的脚本在做什么,所以我必须将其视为本质上的二进制文件。这意味着多个源代码分支的更改无法合并在一起,这严重限制了它的实用性。
我听说有些人导出每个页面并将它们单独放入源代码控制中。首先,这听起来像是一个很大的痛苦。其次,Apex 不允许您将页面导入到导出页面以外的任何应用程序中。因此,很难让两个开发人员同时在他们自己的应用程序副本中工作。
有没有人找到一种通过源代码控制来处理 Apex 的好方法?我正在使用 Subversion,但我怀疑它会有所不同。
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.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我也处理过这个问题。问题的另一个方面是 Apex 与底层 SQL 数据库的联系如此紧密,以至于 SQL 中的任何更改都需要反映出来(换句话说,导出每个页面除了带来巨大的痛苦之外还存在其他问题)。实际上据我所知,当您导出页面时,共享组件也不会导出。
我们通过导出整个应用程序并签入来解决这个问题。本质上,目前没有更好的方法来处理 APEX 中的版本控制。我还记得在 Oracle APEX 论坛上看到过一些内容,有一种方法可以将导出的文件拆分为多个组成部分,但我还没有尝试过。
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.
对于这个问题,我想出了一个我认为相当好的解决方案。主要思想是将开发转移到开发人员自己的工作站,并使用 Subversion 保持同步并合并所有不同的 APEX 应用程序版本。
这使得源代码管理工作流程如下所示:
也就是说,每个开发人员都有自己的 Oracle 数据库实例,已安装在他自己的工作站上。
只要所有工作区和应用程序 ID 在工作站之间保持同步,合并 APEX 转储文件就相当容易,并且源代码控制可确保它们保持这种状态。
我的团队已经使用这种方法近两年了,取得了很好的效果。
基于这次经验,我写了一篇小文章 详细介绍整个方法,我希望它对其他团队有用。
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.
默认 Apex 导出应用程序到一个 sql 文件 (Apex 导出)。而且 Apex 还具有 APEXExport Splitter,它将应用程序导出为单独的部分(css、模板等)
好的方法是将这些部分提交到 svn
1。 SVN 自动化 APEX 导出
2 。如何通过 apex 使用源代码管理?
3. Apex 源代码控制
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