我的alembic更新脚本用于添加新的postgis几何点,如下所示:
from alembic import op
import sqlalchemy as sa
import geoalchemy2 as ga
def upgrade():
op.add_column('stuff', sa.Column('my_location', ga.Geometry('POINT', management=True)))
def downgrade():
pass当我通过
alembic upgrade head出现以下错误
sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) type modifier is not allowed for type "geometry"
LINE 1: ALTER TABLE events ADD COLUMN location geometry(POINT,-1)我使用的是postgres9.1,postgis 1.5,sqlalchemy 1.0.9,geoalchemy2 0.2.6。
发布于 2016-01-21 16:28:08
您使用的是Postgis 1.5,它不支持geometry类型的类型修饰符。
如何解决这个问题: Postgis 1.5目前已经很旧了,所以升级到Postgis 2.x
如果由于同样的原因你不能升级你的Postgis安装,添加一个几何列的正确方法是使用函数AddGeometryColumn()。SQL语句看起来是这样的:
SELECT AddGeometryColumn ('public','events','geom',0,'POINT',2);其中参数的含义是:
1)模式名称,2)表名,3)列名,4) srid,5)类型,6)维度。
但是,您已经使用了正确的标志来添加postgis1.5中的几何列:management=True。根据to documentation,这应该强制SqlAlchemy使用AddGeometryColumn()语法。也许错误是来自Alembic而不是GeoAlchemy?
https://stackoverflow.com/questions/34913898
复制相似问题