草庐IT

SQLALCHEMY_TRACK_MODIFICATIONS

全部标签

python - 数据库异常后 SQLAlchemy 回滚中的错误?

我的SQLAlchemy应用程序(在MariaDB上运行)包括两个模型MyModelA和MyModelB,其中后者是前者的子记录:classMyModelA(db.Model):a_id=db.Column(db.Integer,nullable=False,primary_key=True)my_field1=db.Column(db.String(1024),nullable=True)classMyModelB(db.Model):b_id=db.Column(db.Integer,nullable=False,primary_key=True)a_id=db.Column(db

python - 使用 SQLAlchemy 的 Postgres 继承

我有一个关于使用SQLAlchemy进行PostgreSQL表继承的问题。我有这两个表:CREATETABLEhis(idginteger,idfkinteger,idhintegerNOTNULLdefautlnextval('his_seq'),"type"charactervarying,CONSTRAINT__his_pkeyPRIMARYKEY(idh));CREATETABLEdata("text"charactervarying,)INHERITS(his);在执行任何ddl命令之前,我编写了这段python代码:fromsqlalchemyimport*fromsqla

python - SQLAlchemy:映射器是否更改了我的对象?

我正在尝试使用SQLAlchemy将我的对象存储在数据库中的版本。为此,我有一个save(...)函数:#!/usr/bin/envpython#encoding:utf-8fromsqlalchemyimportColumn,Integer,MetaData,String,Table,create_enginefromsqlalchemy.ormimportmapper,sessionmakerclassMyClass(object):def__init__(self,title):self.title=titledef__str__(self):return'%s'%(self.t

python - SQLAlchemy session 错误 : InvalidRequestError

我试图同时从数据库提交和查询结果,但我遇到了这个错误。sqlalchemy.exc.InvalidRequestError:Thissessionisin'committed'state;nofurtherSQLcanbeemittedwithinthistransaction.完整回溯:Traceback(mostrecentcalllast):File"C:\Python34\lib\site-packages\flask\app.py",line1836,in__call__returnself.wsgi_app(environ,start_response)File"C:\Py

python - 具有声明性基础的 SQLAlchemy 临时表

我的程序中需要一个临时表。我已经看到这可以通过“映射器”语法以这种方式实现:t=Table('t',metadata,Column('id',Integer,primary_key=True),#...prefixes=['TEMPORARY'],)看到here但是,我的整个代码都在使用声明性基础,这是我的理解,我想坚持下去。有可能使用hybridapproach但如果可能的话,我会避免它。这是我的声明类的简化版本:importSQLAlchemyasalcclassTempo(Base):"""Classfortemporarytableusedtoprocessdatacoming

python - 你如何从 SQLAlchemy 控制 MySQL 超时?

当使用SQLAlchemy针对MySQL数据库运行时,从客户端控制超时的正确方法是什么?connect_timeoutURL参数似乎不够。我更感兴趣的是当运行数据库的机器突然从网络中消失时会发生什么。我不担心查询本身会花费太长时间。如果somehost在while期间不可用,则以下脚本会执行您期望的操作(即,大约一秒后超时)曾经达到循环。但是,如果somehost在while循环期间出现故障(例如,尝试在循环开始后拔掉它的网络电缆),那么超时似乎至少需要18秒。是否缺少某些其他设置或参数?wait_timeoutsession变量不起作用并不奇怪,因为我认为这是一个服务器端变量。但我把

python - 曾孙的 SQLAlchemy 链接关联代理?

我有四个这样的类:Group、Parent、Child、Toy。Group有一个parents关系指向ParentParent有一个children关系指向ChildChild有一个toys关系指向ToyParent有一个toysassociation_proxy生成ParentToy的child有。我希望能够获得一个组中的所有玩具。我试图在Group上创建一个association_proxy,它链接到Parent的toys,但它产生了这个:[[,],[],[],[]]当我想要这个时:[,]如果Parent的children没有任何Toy,则toys关联代理是[]。但是,第二个关联代

python - sqlalchemy:停止长时间运行的查询

我的情况看似简单,但找不到直接的解决方案。我正在使用sqlalchemy查询postgres。如果发生客户端超时,我想停止/取消来自另一个线程的长时间运行的postgres查询。该线程可以访问Session或Connection对象。此时我已经尝试过:session.bind.raw_connection().close()和session.connection().close()和session.close和session.transaction.close()但无论我尝试什么,postgres查询仍然会继续,直到结束。我通过在顶部观看pg知道这一点。这不应该很容易做到吗?我错过了什

python - SQLAlchemy:更新 from_select

我需要像这样执行查询UPDATEnodeSETnode.parent_id=node_node.parent_id,node.label=node_node.labelFROMnode_nodeWHEREnode_node.child_id=node_id使用SQLAlchemy。我确实搜索了文档,只找到了insert().from_select(),但没有找到update().from_select()。我知道我可以通过编程实现相同的目标,但我需要它尽可能快。这可能吗?你能给我一个例子或文档链接/任何线索吗? 最佳答案 假设t_n

python - 我可以让 SQLAlchemy 在不重复完整的原始查询的情况下进行子查询预加载吗?

假设我们有这样的原始生成查询:SELECTcompany.xAScompany_x,...FROMcompanyLEFTOUTERJOINaccONacc.id=company.accLEFTOUTERJOINusercomp_linksONcompany.id=usercomp_links.pidLEFTOUTERJOINusergro_linksONacc.id=usergro_links.pidWHEREusergro_links.eid=%sORusercomp_links.eid=%s如果我们向其中添加.options(subqueryload(Company.childs)