2012-05-05 24 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中創建空間索引,但值得一試。

+1

看起來索引沒有自動創建。你能舉一個詳細的例子嗎? – flypen

+0

@flypen:同樣在這裏,我添加了索引「手動」。 –

0

隨着GeoAlchemy,有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__) 
相關問題