2012-05-05 2 views
2

昨日、誰かが、私がSqlalchemyを使いたい場合、Geoalchemyが空間拡張をサポートするのに良い選択だと教えてくれました。それは本当によかった。彼には本当にありがとう。SqlalchemyまたはGeoalchemyで空間インデックスを作成する便利な方法はありますか?

Geoalchemyで空間インデックスを作成する便利な方法が見つかりませんでした。このSQLを直接実行する必要がありますか?

CREATE SPATIAL INDEX sp_index ON my_class (
geom_col 
); 

SQLを直接書き込まないと便利な方法はありますか?

ありがとうございます!

答えて

2

table.create()で表を作成すると、GeoAlchemyは自動的にジオメトリ列のインデックスを作成します。

また、SQLAlchemy Indexインスタンスはcreateメソッドを持っています。 http://docs.sqlalchemy.org/en/rel_0_7/core/schema.html#metadata-constraintsの「インデックス」セクションを参照してください。 MySQLで空間インデックスを作成できるかどうかはわかりませんが、試してみる価値はあります。 GeoAlchemyで

+1

インデックスが自動的に作成されなかったようです。詳細な例を教えてください。 – flypen

+0

@flypen:ここでは、私は "手動で"インデックスを追加しました。 –

0

、あなたはジオメトリ列

  • に空間索引を作成するために取るべき2つのステップがありますジオメトリ列
  • へのattr 'SPATIAL_INDEX' を追加

GeometryDDL拡張子を呼び出し例:

# note that spatial_index will set the column to not null 
class Building(Base): 
    geom = GeometryColumn(Point(2, spatial_index=True)) 

GeometryDDL(Building.__table__) 
関連する問題