2016-01-04 2 views
1

Я использую sqlacodegen, чтобы автоматически генерировать код модели для SQLAlchemy.вопрос sqlacodegen с типом геометрии

Моя проблема в том, что у меня есть несколько столбцов типа геометрия, и насколько я знаю, согласно приведенной ниже ссылке, sqlacodegen не поддерживает такие типы.

https://bitbucket.org/agronholm/sqlacodegen/issues/18/did-not-recognize-type-geometry-on

Кто-нибудь знает, как я могу обойти эту проверочный? Может быть, с помощью метода Mapper или что-то еще?

Thnks

ответ

1

Вероятно, вы уже поняли это, так что это идет к потомству.

По той же ссылке, которую вы указали (issue #18), у этого уже есть PR, чтобы исправить ситуацию (без каких-либо тестов, так что это не было принято на сегодняшний день).

Тем не менее, исправление легко. Установите GeoAlchemy2 (это приносит поддержку PostGIS к SQLAlchemy) и импортировать его в sqlacodegen/codegen.py

from sqlalchemy.types import Boolean, String 
import sqlalchemy 
from geoalchemy2 import Geometry 

В противном случае, игнорировать те SAWarnings и вручную исправить типы геометрии, которые не были правильно определены, то есть, заменить NullType с Geometry.

the_geom = Column(NullType, index=True) 
# becomes 
the_geom = Column(Geometry(...), index=True) 
+0

Да, я уже понял это, но все равно спасибо;) – Falcoa