我有一些sqlalchemy模型有一个GeometryColumn 为了我的缓存目的,我使用cPickle 现在,虽然这个列是空的,但一切都很好。但是,如果它有我收到的数据:
TypeError: buffer() takes at least 1 argument (0 given)
在做cPickle.loads(data)
我在此查询中确实不需要此列,我很乐意将其排除
但是在酸洗前做mymodel.geom = None
之类的事情仍然会出现此错误
我想到的唯一解决方案是定义另一个没有此列的sqlalchemy模型。但如果我设置:
__tablename__ = 'same_table'
我收到:
Table 'my_model' is already defined for this MetaData instance. Specify 'extend_existing=True' to redefine options and columns on an existing Table object.
对于任何此类错误或某些问题,是否有任何解决方案? 顺便说一句,尝试做类似的事情:
class MyModelNoGeom(MyModel):
__tablename__=MyModel.__tablename__
__table__.extend_existing=True
geom=None
也会出错:
NameError: name '__table__' is not defined
答案 0 :(得分:0)
我发现的单一解决方案: 有点难看,但有效。
temp_geom=MyModel.geom
MyModel.geom=None
objects_MyModel.send_to_cache()
MyMyodel.geom=temp_geom