使用SQLAlchemy的MySQL空间索引?
在sqlalchemy的文档中,有一个很好的例子,讲的是如何定义和使用Geometry
列:
http://docs.sqlalchemy.org/en/rel_0_9/core/types.html#applying-sql-level-bind-result-processing
不过,文档里没有提到空间索引的相关内容。那么,我该如何在sqlalchemy中定义SPATIAL INDEX
呢?
附注: 之前有一个老问题讨论过这个:有没有方便的方法用Sqlalchemy或Geoalchemy创建空间索引?,但我不想使用GeoAlchemy,因为它在两年前就被放弃了,处于“开发早期阶段”,所以我觉得这是一个不同的问题。
1 个回答
1
只需执行这个DDL命令:
engine.execute("CREATE SPATIAL INDEX sp_index ON geom (g)")
如果你想把这个命令和某个表关联起来,可以使用DDL:
from sqlalchemy import event, DDL
event.listen(some_table, 'after_create', DDL("CREATE SPATIAL INDEX sp_index ON geom (g)"))