我正在尝试使用 SQLalchemy 和 geoalchemy2 创建一个表,如下所示:
class RLocModel(Base):
__tablename__ = 'rloc'
id = Column(Integer, primary_key=True)
loc = Column(Geometry('POINT'))
这是针对 mysql 数据库(实际上是与 AWS mysql 兼容的 Aurora 数据库)。
我得到一个例外如下:
(_mysql_exceptions.ProgrammingError) (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(POINT,-1), \n\tPRIMARY KEY (id)\n)' at line 3") [SQL: '\nCREATE TABLE rloc (\n\tid INTEGER NOT NULL AUTO_INCREMENT, \n\tloc geometry(POINT,-1), \n\tPRIMARY KEY (id)\n)\n\n']
我不确定它是否表达了正确的方言。
我可以这样手动执行此操作:
CREATE TABLE `geo` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`loc` geometry NOT NULL,
PRIMARY KEY (`id`),
SPATIAL KEY `loc` (`loc`)
) ENGINE=InnoDB AUTO_INCREMENT=11905 DEFAULT CHARSET=latin1;
有任何想法吗?