代码之家  ›  专栏  ›  技术社区  ›  Jordan Parmer

在协作的、版本控制的环境中,您如何处理Oracle软件包?

  •  9
  • Jordan Parmer  · 技术社区  · 16 年前

    我在Oracle的一个多开发环境中工作,有一个大的包。我们有一个dev=>tst=>prd提升模式。目前,所有的包编辑都直接在toad中进行,然后编译到dev包中。

    我们遇到两个问题:

    1. 并发更改需要在不同的计划上升级。例如,开发人员A做出了一个明天需要提升的更改,而开发人员B同时处理一个在两周内不会提升的更改。到了升职的时候,我们发现自己手动评论了一些还没有升职的东西,然后在事后取消注释……糟糕!!!

    2. 如果两个开发人员同时进行更改,并且其中一个开发人员正在编译,则会清除另一个开发人员的更改。没有一个很好的合并;相反,最新的编译会获胜。

    你会推荐什么策略来解决这个问题?我们正在将TFS用于源代码管理,但还没有将其用于我们的Oracle包。

    附笔。 我见过 this 但它没有完全回答我的问题。

    7 回复  |  直到 13 年前
        1
  •  2
  •   Adam Fyles    16 年前

    我们使用 Oracle Developer Tools for Visual Studio.NET …直接插入TFS

        2
  •  4
  •   dpbradley    16 年前

    关键是采用只从源代码控制系统部署代码的实践。我不熟悉TSF,但它必须实现分支、标记等概念。在源代码管理系统中,部署什么的问题不在构建和发布标记中。

    其他提示(针对Oracle):

    • 如果您将包规范和包体拆分为不同的文件,每个文件使用一致的文件模式(例如,包规范为“.pks”,包体为“.pkb”),则效果最好。如果您使用可以处理文件模式的自动构建过程,那么您可以构建所有规范,然后构建主体。如果您只部署包体,这也可以最小化对象无效性。

    • 花时间配置一个由源代码管理系统的发布或生成状态驱动的自动生成过程。如果您甚至有适度数量的DB代码对象,那么可以将代码构建到参考系统中,并将其与您的QA或生产系统进行比较,这是值得的。

        3
  •  4
  •   Community CDub    8 年前

    my answer 关于 Tools to work with stored procedures in Oracle, in a team (我刚刚重新标记过)。

    底线:不要直接用toad修改程序。将源存储为文件,然后将其存储在源代码管理中,修改并执行。

    另外,我强烈建议每个开发人员使用自己的数据库副本(使用免费的Oracle Express)。如果您存储所有脚本以在源代码管理中创建数据库,则可以这样做。更多洞察力 can be found here .

        4
  •  3
  •   Tony Andrews    16 年前

    要避免两个开发人员同时处理同一个包:

    1)使用版本控制系统作为包代码的源代码。要处理包,开发人员必须首先从版本控制中签出包;在开发人员签回包之前,其他人都不能签出包。

    2)不要直接在toad或任何其他IDE中处理包代码。你有 没有线索 您正在处理的代码是否正确,或者是否已被一个或多个其他开发人员修改过。处理从版本控制中签出的脚本中的代码,并将其运行到数据库中以编译包。我的首选是使用一个好的文本编辑器(textpad)和SQL Plus,但您也可以在toad中这样做。

    3)完成后,将脚本检查回版本控制。 将代码从数据库中复制并粘贴到脚本中(请再次参见第2点)。

    这种受控方法的缺点(如果是)是一次只能有一个开发人员处理一个包。只要:

    • 您可以将包的大小控制在合理的范围内(根据它们的作用,而不是代码行数或过程数)。不要有一个能容纳所有代码的大包。
    • 鼓励开发人员仅在准备好处理代码时签出代码,并在完成更改和测试后立即签入代码。
        5
  •  1
  •   Colin Pickard    16 年前

    我们为每个流使用一个dev数据库,为不同的流使用标签。

    我们的Oracle许可给了我们无限的开发/测试实例,但我们是一个ISV,您可能有不同的许可选项。

        6
  •  1
  •   tuinstoel    16 年前

    您可以使用Oracle Developer Tools for VS,也可以使用SQL Developer。SQL开发人员与Subversion和CVS集成,您可以免费下载。请参见这里: http://www.oracle.com/technology/products/database/sql_developer/files/what_is_sqldev.html

        7
  •  0
  •   Geoffrey Hudik    14 年前

    我们使用toad for oracle和tfs mssci提供程序针对tfs 2008。我们使用 Custom Tool 它从源代码管理中提取数据库签入并打包以供发布。

    据我所知,Oracle Developer Tools for Visual Studio.NET没有与TFS或其他任何真正的源代码管理集成。

    你可能会考虑 Toad Extensions for Visual Studio 虽然不便宜,但我想大概4千美元。

    另一个选择是 Oracle Change Management Pack 但相信它需要企业版的甲骨文,而甲骨文的价格要贵得多。

    推荐文章