带有地球化学2的烧瓶Alembic迁移错误-无效的geometry_type

时间:2019-10-16 01:42:02

标签: python flask sqlalchemy alembic geoalchemy2

我正在尝试实现Flask-Migrate以帮助管理迁移,但是在尝试制作迁移脚本时出现错误:“ geoalchemy2.exc.ArgumentError:维度2的geometry_type'POINTZ'无效”。

我有一个Flask项目,并且正在使用geoalchemy2与PostGIS数据库进行交互。该数据库具有一些具有PolygonZ和PointZ几何形状的表(尺寸= 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如何查看几何列有关。只是不确定。

任何建议将不胜感激。谢谢

1 个答案:

答案 0 :(得分:0)

发现了问题,我使用的是GeoAlchemy2版本0.6.2,this issue识别出了嵌套在GeoAlchemy2中的问题。

我在更新到GeoAlchemy2 0.6.3版本后重新运行了Flask Migrate,它创建了迁移脚本而没有崩溃。

相关问题