2

我们在我们的应用程序中使用 liquibase 作为进化的数据库变更管理工具,当我们在“通用”数据库模式中使用它时效果很好。

但是我们也使用 esri arcSDE 9.3 平台而不是 Oracle 来处理 GIS 应用程序,在这种情况下,模式中的所有(或几乎所有)表(GIS 和“字母数字”表)都通过以下方式进行管理(创建表、授权等)弧SDE。因此,当我们现在要创建新的要素类时,我们使用 arcCatalog,这样就无法使用 liquibase 或其他自动重构工具直接通过 SQL 来管理要素类的更改。

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

  1. 每次我们对监视 oracle 连接的一个要素类进行更改时,尝试捕获 arcCatalog/arcSDE 正在执行的 SQL。它给我们带来了一组过于复杂的 SQL 指令,包括索引、版本控制表等,所以我们放弃了这种方式。

  2. 使用安装在 arcSDE 服务器上的sdelayer 和 sdetable 管理命令。

  3. 使用数据管理工具:一个基于 python 的库来管理要素类,但它必须在安装了桌面版本的机器上执行。

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

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

4

1 回答 1

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 来管理您的东西,那么新的 python API 使用起来更容易和更快(arcpy 与 GP 模型)。(不管怎样,这两个 API 都不是很好开发的,而且编码不直观或速度不快。)

祝你好运。

于 2012-09-04T03:26:28.850 回答