我们在我们的应用程序中使用 liquibase 作为进化的数据库变更管理工具,当我们在“通用”数据库模式中使用它时效果很好。
但是我们也使用 esri arcSDE 9.3 平台而不是 Oracle 来处理 GIS 应用程序,在这种情况下,模式中的所有(或几乎所有)表(GIS 和“字母数字”表)都通过以下方式进行管理(创建表、授权等)弧SDE。因此,当我们现在要创建新的要素类时,我们使用 arcCatalog,这样就无法使用 liquibase 或其他自动重构工具直接通过 SQL 来管理要素类的更改。
因此,如果我们不能使用 liquibase 来管理更改,至少我们希望通过命令行对我们的功能执行管理操作。我们已经开始寻找避免使用 arcCatalog 的工具,然后尝试使用脚本自动化更改,我们正在研究这些可能性:
每次我们对监视 oracle 连接的一个要素类进行更改时,尝试捕获 arcCatalog/arcSDE 正在执行的 SQL。它给我们带来了一组过于复杂的 SQL 指令,包括索引、版本控制表等,所以我们放弃了这种方式。
使用安装在 arcSDE 服务器上的sdelayer 和 sdetable 管理命令。
使用数据管理工具:一个基于 python 的库来管理要素类,但它必须在安装了桌面版本的机器上执行。
最后两个选项将提供一种从命令行管理功能的方法,但我们的目标是找到/开发一种工具来管理类似于 liquibase 的方式的更改。但是有了这些工具,我们必须找到一个工具,让我们将每个 SQL DDL 操作映射到一个 arcSDE 命令,而目前没有 db 重构工具提供这个(目前我们有检查 liquibase、dbdeploy、flyway)。
有人用 arcSDE 解决了这个进化变更管理问题吗?对解决此问题的另一种方法有何见解?