"适配器不支持几何"声明几何字段时的异常

时间:2015-09-04 16:23:55

标签: sqlite web2py spatialite

在我的应用程序中,"适配器不支持几何"尝试创建类型字段时会抛出异常," geometry()"。对于我的测试应用程序,我使用sqlite DB(生产将使用postgres):

WIN32_FIND_DATAA FileData = {};

有问题的数据库表是在模块内的类中声明的,并包含几个字段,其中一些字段包含位置数据:

db = DAL('sqlite://storage.sqlite', pool_size = 1, fake_migrate_all= False)

修改

根据Anthony的建议,我已将DAL构造函数调用修改为以下内容:

from gluon.dal import Field, geoPoint, geoLine, geoPolygon

class Info(Base_Model):

    def __init__(...):

        try: 
            db.define_table('t_info', 
                ...
                Field('f_geolocation', type='geometry()', 
                    label =  current.T('Geolocation')),
                Field('f_city', type='string', 
                    label = current.T('City')),
                ...
        except Exception as e:
            ...

它会产生以下错误消息:

db = DAL('spatialite://storage.sqlite', pool_size = 1)

1 个答案:

答案 0 :(得分:1)

如果要将几何字段与SQLite一起使用,则必须使用spatialite适配器,该适配器使用SQLite的SpatialLite扩展:

db = DAL('spatialite://storage.sqlite', pool_size = 1)

请注意,您必须安装了spaceite才能实现此目的。