ogr2ogr
PostGISデータベースへのデータのインポートに使用しています。インポートする必要がある各データセットは、(理論的には)正確に同じデータ構造を持っていますが、それらは同じジオメトリタイプではないようです。例、最初のレイヤーを既にインポートしており、「streets」というレイヤーがあります。このコマンドを実行して、最初のデータベースから最初のフィーチャクラスをインポートします(GDALを読み取るように構成しています.mdb
)。
ogr2ogr -f PostgreSQL PG:"host=localhost user=postgres dbname=database port=5432" city1.mdb streets -nln streets -nlt MULTILINESTRING -lco GEOMETRY_NAME=geometry
-append
から同じストリートレイヤーを(フラグを使用して)追加しようとするcity2.mdb
と、このエラーが発生します(おそらく2つの「ストリート」レイヤーのジオメトリタイプが競合していることが原因です)。
Warning 1: Geometry to be inserted is of type 3D Line String, whereas the layer geometry type is 3D Multi Line String.
Insertion is likely to fail
ERROR 1: INSERT command for new feature failed.
ERROR: Geometry type (LineString) does not match column type (MultiLineString)
ogr2ogr
インポート時にジオメトリを同じタイプにキャストする簡単な方法はありますか?または、事前に各テーブルのスキーマとジオメトリを事前定義してこれを処理する方法はありますか?