移行を管理するために 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 がジオメトリ列を表示する方法に関係していると思います。よくわからない。
アドバイスをいただければ幸いです。ありがとう