我正在尝试实现Flask-Migrate来帮助管理迁移,但在尝试创建迁移脚本时出现错误:"geoalchemy2.exc.ArgumentError: invalid geometry_type 'POINTZ‘for dimension 2“。
我有一个Flask项目,正在使用geoalchemy2与PostGIS数据库接口。数据库中有一些包含PolygonZ和PointZ几何图形(dimensions=3)的表。通过命令行使用Flask-Migrate进行的初始迁移运行良好,并生成了迁移脚本(然后对脚本进行了调整才能正常工作)。
具有3D几何图形的模型定义如下:
from MyProject import db
from geoalchemy2 import Geometry
class Source(db.Model):
__tablename__ = 'source'
id = db.Column(db.Integer, primary_key=True)
project_id = db.Column(db.Integer(), db.ForeignKey('project.id'))
project = db.relationship('Project', foreign_keys=[project_id])
category = db.Column(db.String(300))
geometry = db.Column(Geometry(geometry_type='POINTZ', srid=4326, dimension=3))
class Building(db.Model):
__tablename__ = 'building'
id = db.Column(db.Integer, primary_key=True)
project_id = db.Column(db.Integer(), db.ForeignKey('project.id'))
project = db.relationship('Project', foreign_keys=[project_id])
geometry = db.Column(Geometry(geometry_type='POLYGONZ', srid=4326, dimension=3))使用Flask Migrate命令在命令行上完成迁移。
flask db migrate它在没有生成脚本的情况下失败,并生成以下geoalchemy2错误
geoalchemy2.exc.ArgumentError: invalid geometry_type 'POINTZ' for dimension 2我也尝试过Flask-Alembic,它最后给出了相同的geoalchemy2错误,所以我认为这与Alembic查看几何列的方式有关。只是不确定是什么。
任何建议都将不胜感激。谢谢
发布于 2019-10-16 16:37:31
当我发现这个问题时,我使用的是GeoAlchemy2 0.6.2版,而this issue发现了这个隐藏在GeoAlchemy2中的问题。
在更新到GeoAlchemy2版本0.6.3之后,我重新运行了Flask Migrate,它创建了迁移脚本而没有崩溃。
https://stackoverflow.com/questions/58404627
复制相似问题