ArcSDE数据库重构工具选项

时间:2012-08-31 06:43:04

标签: oracle gis arcgis liquibase refactoring-databases

我们在我们的应用程序中使用liquibase作为进化数据库更改管理工具,当它们在“常见”数据库模式中使用时,它非常有用。

但我们也使用esri arcSDE 9.3平台在GIS上使用GIS应用程序,在这种情况下,模式中的所有(或几乎所有)表(GIS和'字母数字'表)都被管理(创建表,授权等) 。)通过arcSDE。因此,当我们想要创建新的特征classe时,我们使用arcCatalog,这样,就不可能使用liquibase或其他自动重构工具直接通过SQL管理要素类的更改。

因此,如果我们不能使用liquibase来管理更改,至少我们希望通过命令行对我们的功能执行管理操作。 我们已经开始寻找避免使用arcCatalog的工具,然后尝试使用脚本自动化更改,我们正在研究这些可能性:

  1. 尝试捕获每次在监视oracle连接的一个Feature Class中进行更改时执行arcCatalog / arcSDE的SQL。它导致我们过于复杂的SQL指令集,涉及索引,版本控制表等,所以我们放弃了这种方式。

  2. 使用arcSDE服务器上安装的sdelayer and sdetable admin commands

  3. 使用data management tool:基于python的库来管理要素类,但必须从安装了桌面版本的计算机上执行。

  4. 最后两个选项将提供一种从命令行管理功能的方法,但我们的目标是查找/开发一个工具来管理类似于liquibase的方式的更改。但是使用这些工具,我们必须找到一个工具,让我们将每个SQL DDL操作映射到arcSDE命令,而且目前没有db重构工具提供这个(目前我们检查liquibase,dbdeploy,flyway)。

    有人用arcSDE解决了进化变更管理这个问题吗?对于解决这个问题的另一种方式的任何见解?

1 个答案:

答案 0 :(得分:1)

我会对此嗤之以鼻,虽然我不熟悉你提到的产品之一(特别是liquibase - 我使用过Oracle并且我非常熟悉ArcGIS(ArcMap和ArcCatalog)。

以下是一些可能有用的其他信息以及我对您的问题的解释。

我的解释 - “管理或使我们在Oracle数据库中自动管理GIS数据表的简单方法是什么,而不必一直使用ArcCatalog?”

所以 - 我将把这个概念放回到环中 - 我知道SQL Server具有空间数据类型“几何”等,并且您可以绕过SDE并让ArcGIS直接连接和解释这些数据,甚至不需要安装SDE。我也知道Oracle具有兼容的空间类型。所以我可能会考虑从ArcCatalog创建的托管FC中迁移我的数据,并将它们推送到基于oracle-native几何的表中。通过这种方式,您可以将它们视为常规表,从解决方案中删除ESRI,并使用liquibase等管理它们。希望这会有所帮助。

我还会考虑升级到10.1或至少10.0(我保证我不是一个卧底推销员),虽然这将要求您的用户在客户端与您一起来(http://resources.arcgis.com /en/help/main/10.1/index.html#//002q000000n8000000)因为较新的python API使用起来更容易和更快(arcpy与GP模型相比),如果你选择使用Python来管理你的东西。 (无论如何,要么API不是很好开发,也不能直观地编写或快速编写。)

祝你好运。