私たちは、アプリケーションの進化的な DB 変更管理ツールとして liquibase を使用しています。「一般的な」データベース スキーマで使用すると、うまく機能します。
しかし、Oracle 経由で esri arcSDE 9.3 プラットフォームを使用する GIS アプリケーションも使用します。この場合、スキーマ内のすべて (またはほとんどすべて) のテーブル (GIS テーブルと「英数字」テーブルの両方) は、アークSDE. そのため、新しいフィーチャ クラスを作成する場合は、arcCatalog を使用します。この方法では、liquibase やその他の自動リファクタリング ツールを使用して SQL を介してフィーチャ クラスの変更を直接管理することはできません。
そのため、liquibase を使用して変更を管理できない場合は、少なくともコマンド ラインを介して機能の管理操作を実行したいと考えています。私たちは、arcCatalog の使用を回避するツールを探し始め、スクリプトを使用して変更を自動化しようとしました。これらの可能性を調査しています。
Oracle 接続を監視している 1 つのフィーチャ クラスに変更を加えるたびに、arcCatalog/arcSDE が実行している SQL を取得してみてください。インデックスやバージョン管理テーブルなどを含む SQL 命令のセットが複雑になりすぎるため、この方法はあきらめます。
arcSDE サーバにインストールされているsdelayer および sdetable admin コマンドを使用します。
データ管理ツールを使用します。これは、フィーチャ クラスを管理するための Python ベースのライブラリですが、デスクトップ バージョンがインストールされているマシンから実行する必要があります。
これらの最後の 2 つのオプションは、コマンドラインから機能を管理する方法を提供しますが、私たちの目標は、liquibase と同様の方法で変更を管理するツールを見つけて開発することです。しかし、これらのツールでは、各 SQL DDL 操作を arcSDE コマンドにマップできるツールを見つける必要があり、現在これを提供する db リファクタリング ツールはありません (現在、liquibase、dbdeploy、flyway をチェックしています)。
この進化的変更管理の問題を arcSDE で解決した人はいますか? この問題に直面する別の方法についての洞察はありますか?