草庐IT

sqlalchemy-migrate

全部标签

python - SQLAlchemy:使用 id 而不是对象添加关系?

是否可以使用id而不是对象添加到SQLAlchemy关系中?例如,考虑两个声明性的SQLAlchemy类Review和Artist,它们之间存在一种关系:classReview(Base):artist_id=Column(Integer,ForeignKey('artist.id'))artist=relationship(Artist,backref=backref('reviews',order_by=id))#etc.classArtist(Base):#etc.有了要添加到艺术家的评论ID列表,我似乎需要从ID中查找艺术家,然后将艺术家对象添加到评论中,如下所示:forrev

python - SQLAlchemy , 属性错误 : 'tuple' object has no attribute 'foreign_keys'

我有以下模型来描述我的数据库模式:fromsqlalchemy.ext.declarativeimportdeclarative_basefromsqlalchemyimportColumn,Integer,String,ForeignKeyfromsqlalchemy.ormimportrelationship,backrefimportsqlalchemy.dialects.mysqlasmysqlBase=declarative_base()classCountry(Base):__tablename__='countries'__table_args__={'mysql_eng

python - sqlalchemy.exc.CircularDependencyError : Circular dependency detected 错误

业务逻辑-一个类别可能有多个(1:M)属性,例如“内存”类别可能有速度、大小、类型等属性。同时,一个类别可以按属性值排序(这存储在Category.sortByAttribute中-这是LookupCategoryAttributes表的外键。尝试通过SQLAlchemy构建它,但检测到循环依赖。怎么了?classAttribute(Base):__tablename__="LookupCategoryAttributes"types=["date","float","integer","select","string","text"]#PropertiesID=Column(BigI

python - 如何使用 SQLAlchemy 获取与三元组条件列表匹配的行

有一个三元组列表:[(a,b,c),(d,e,f)]我想从一个表中检索所有行,其中3列与元组匹配。对于这个例子,查询WHERE子句可以是这样的:(column_X=aANDcolumn_Y=bANDcolumn_Z=c)OR(column_X=dANDcolumn_Y=eANDcolumn_Z=f)如何使用SQLAlchemy创建这样的请求?在我的例子中,三元组列表将包含数百个元素,我正在寻找最佳的可缩放解决方案。谢谢你的帮助, 最佳答案 最简单的方法是使用SQLAlchemy提供的tuple_功能:fromsqlalchemyim

python sqlalchemy动态获取列名?

#!/usr/bin/envpython#-*-coding:utf-8-*-fromsqlalchemyimportcreate_engineconnection=create_engine('mysql://user:passwd@localhost:3306/db').connect()result=connection.execute("select*fromtable")forvinresult:printv['id']printv['name']connection.close()如何动态获取表列名称?在这种情况下id和name 最佳答案

python - 在 Flask-SQLAlchemy 中隔离 py.test 数据库 session

我正在尝试使用Flask-SQLAlchemy构建一个Flask应用程序;我使用pytest来测试数据库。其中一个问题似乎是在不同测试之间创建隔离的数据库session。我编写了一个最小的完整示例来突出问题,请注意test_user_schema1()和test_user_schema2()是相同的。文件名:test_db.pyfrommodelsimportUserdeftest_user_schema1(session):person_name='FranClan'uu=User(name=person_name)session.add(uu)session.commit()ass

python - 使用 sqlalchemy 结果集进行更新

这里真的有2个问题。如果我像这样运行sqlalchemy查询:sensors=session.query(Sensor).filter(Sensor.serial_number.in_(data['sensor_serial_numbers'])).all()然后我可以使用结果集(传感器)来更新所有这些行中的列吗?我无法弄清楚它的语法,所以我尝试这样做:session.query(Sensor).filter(Sensor.serial_number.in_(data['sensor_serial_numbers'])).update({'system_id':system.id})但

python - 如何从 SQLAlchemy 中检索已执行的 SQL 代码

我正在使用SQLAlchemy并希望记录已执行SQL代码(即所有绑定(bind)参数已被引用和替换的代码)。在psycopg2的情况下,可以使用Cursor对象的query属性(参见psycopgdocumentation)。对于MySQLdb,可以使用Cursor对象的_last_executed属性。我的问题是:如何使用SQLAlchemy接口(interface)检索刚刚执行的查询字符串?它是否提供此类功能,还是我应该编写自己的辅助函数?在此先感谢您的帮助。 最佳答案 SQLAlchemyusesthestandardPyth

python - SQLAlchemy 通过关联对象声明多对多自连接

我有一个用户表和一个将用户映射到其他用户的表friend,因为每个用户可以有很多friend。这种关系显然是对称的:如果用户A是用户B的friend,那么用户B也是用户A的friend,我只存储一次这种关系。Friends表除了两个用户ID之外还有其他字段,因此我必须使用关联对象。我试图在Users类(它扩展了声明性基础)中以声明式的方式定义这种关系,但我似乎无法弄清楚如何做到这一点。我希望能够通过属性friends访问给定用户的所有friend,比如friends=bob.friends。解决这个问题的最佳方法是什么?我尝试了许多不同的设置来张贴在这里,但由于各种原因,它们都没有奏效

python - 南 : Unknown command 'migrate'

我变得无情了$pythonmanage.pymigrateUnknowncommand:'migrate'Type'manage.pyhelp'forusage.我将代码从github拉到一台新电脑上。此代码已经过测试,可以在其他计算机上运行。除了我无法运行迁移之外,整个代码运行良好!安装我的虚拟环境并运行pipinstall-rrequirements.txt。它安装一切,包括南方。我可以通过运行来检查$pythonmanage.pyshell>>>importsouth>>>south.__version__'0.7.3'但是,当我运行manage.pyhelp时,migrate和