有没有一种方便的方法来创建Sqlalchemy或Geoalchemy的空间索引?

时间:2012-05-05 13:46:14

标签: mysql sqlalchemy geospatial

昨天有人告诉我,如果我想使用Sqlalchemy,Geoalchemy是支持空间扩展的不错选择。它真的很棒。非常感谢他。

但我还没有找到一种方便的方法来使用Geoalchemy创建空间索引。我必须直接运行这个SQL吗?

CREATE SPATIAL INDEX sp_index ON my_class (
geom_col
);

有没有直接编写SQL的方便方法?

谢谢!

2 个答案:

答案 0 :(得分:2)

使用table.create()创建表格时,GeoAlchemy会自动为几何列创建索引。

此外,SQLAlchemy Index实例具有create方法。请参阅http://docs.sqlalchemy.org/en/rel_0_7/core/schema.html#metadata-constraints中的“索引”部分。我不确定你是否能够在MySQL中创建空间索引,但值得一试。

答案 1 :(得分:0)

使用GeoAlchemy,您需要采取两个步骤来创建几何列

上的空间索引
  • 添加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__)