2

私たちは、アプリケーションの進化的な DB 変更管理ツールとして liquibase を使用しています。「一般的な」データベース スキーマで使用すると、うまく機能します。

しかし、Oracle 経由で esri arcSDE 9.3 プラットフォームを使用する GIS アプリケーションも使用します。この場合、スキーマ内のすべて (またはほとんどすべて) のテーブル (GIS テーブルと「英数字」テーブルの両方) は、アークSDE. そのため、新しいフィーチャ クラスを作成する場合は、arcCatalog を使用します。この方法では、liquibase やその他の自動リファクタリング ツールを使用して SQL を介してフィーチャ クラスの変更を直接管理することはできません。

そのため、liquibase を使用して変更を管理できない場合は、少なくともコマンド ラインを介して機能の管理操作を実行したいと考えています。私たちは、arcCatalog の使用を回避するツールを探し始め、スクリプトを使用して変更を自動化しようとしました。これらの可能性を調査しています。

  1. Oracle 接続を監視している 1 つのフィーチャ クラスに変更を加えるたびに、arcCatalog/arcSDE が実行している SQL を取得してみてください。インデックスやバージョン管理テーブルなどを含む SQL 命令のセットが複雑になりすぎるため、この方法はあきらめます。

  2. arcSDE サーバにインストールされているsdelayer および sdetable admin コマンドを使用します。

  3. データ管理ツールを使用します。これは、フィーチャ クラスを管理するための Python ベースのライブラリですが、デスクトップ バージョンがインストールされているマシンから実行する必要があります。

これらの最後の 2 つのオプションは、コマンドラインから機能を管理する方法を提供しますが、私たちの目標は、liquibase と同様の方法で変更を管理するツールを見つけて開発することです。しかし、これらのツールでは、各 SQL DDL 操作を arcSDE コマンドにマップできるツールを見つける必要があり、現在これを提供する db リファクタリング ツールはありません (現在、liquibase、dbdeploy、flyway をチェックしています)。

この進化的変更管理の問題を arcSDE で解決した人はいますか? この問題に直面する別の方法についての洞察はありますか?

4

1 に答える 1

1

私はあなたが言及した製品の1つに慣れていませんが(具体的にはliquibase - Oracleを使用しており、ArcGIS(ArcMapとArcCatalog)に非常に精通しています)、これを試してみます。

ここに役立つかもしれないいくつかの追加情報と、あなたの質問に対する私の解釈があります。

私の解釈 - 「ArcCatalog を常に使用することなく、Oracle データベース内の GIS データのテーブルを管理または自動化する簡単な方法は何ですか?」

したがって、この概念をリングに戻します。SQL Server には「ジオメトリ」などの空間データ型があり、SDE をバイパスして、ArcGIS に SDE をインストールしなくてもこのデータを直接接続して解釈させることができることを知っています。また、Oracle には互換性のある空間型があることも知っています。したがって、ArcCatalog が作成し、Oracle ネイティブのジオメトリ ベースのテーブルにプッシュするマネージド FC からデータを移行することを検討する可能性があります。このようにして、それらを通常のテーブルのように扱い、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 に答える