【python – 使用SQLAlchemy批量upsert】教程文章相关的互联网学习教程文章

python – 如何动态更改SQLAlchemy声明模型上的列类型?【代码】

我在生产中运行mysql但是想在内存db中的sqlite中运行一个简单的测试. 遗留的mysql db具有包含mysql特定类型的列的表,这些列在声明性模型中声明(子类化declarative_base).我想在不使用mysql的情况下运行一些简单的测试,因此需要交换模型的列. 我该怎么做呢?我已经尝试过编写一个patcher / unpatcher来替换我的模型中的表,但是当我运行一些测试时,我得到了OperationalError: (OperationalError) near ")": syntax error u'\nCREATE ...

python – sqlalchemy在删除之前更新另一个模型【代码】

我正在使用sqlalchemy和postgresql.我是sqlalchemy的新手. 我为名为“to_user_id”的模型“User”制作了forien键来模拟“邀请”,这个键不可为空. 当我尝试删除模型“用户”的实例时session.delete(user)并且sqlalchemy在删除之前自动将邀请的to_user_id设置为NULL,并且postgresql会引发跟随错误.IntegrityError: (IntegrityError) null value in column "to_user_id" violates not-null constraint我该如何禁用它? 这是我模型的定...

python – SQLAlchemy column_property基础知识【代码】

我有两个型号:class Report(Base):__tablename__ = 'report'id = Column(Integer, primary_key=True)class ReportPhoto(Base):__tablename__ = 'report_photo'id = Column(Integer, primary_key=True)report_id = Column(Integer, ForeignKey(Report.id), nullable=False)report = relationship(Report, uselist=False, backref=backref('report_photo', uselist=True))我想在Report模型中添加一列,表明ReportPhoto中是否有任何记...

python – SqlAlchemy:将表导出到新数据库【代码】

最近才开始使用python,我喜欢它!但是,我坚持使用SqlAlchemy. 我正在尝试编写一个脚本来读取MS SQL数据库,查询表(所有字段,只对某些字段进行过滤),并将结果写入本地SQLite数据库. (目标是编写数据适配器:在将结果导出到另一个数据库之前,在SQLite数据库上执行一些查询.也可以写入目标数据库中的临时表.) 我可以建立连接并获得查询结果 – 我可以打印它们,所以我知道该部分有效.但是,如何根据源SQL Server的查询结果结构创建新表?...

python – 带参数的SQLAlchemy NOT IN子句【代码】

在使用Python连接PostgreSQL数据库时,我们使用的是SQLAlchemy,而不是ORM.我们有一个表,其中一列是一个字符串数组,我们想要检索数组列中没有输入参数的所有行.请注意我们可以检索SQLAlchemy的其他查询的结果,因此问题必须在查询创建中. 我们需要实现的SQL如下所示:select pk from table where 'paramstring' NOT IN(array_column); -- returns several rows我们在Python中提出的功能是这样的:def get_not_matching(param):select_...

python – 在SQLAlchemy中使用OVER窗口函数【代码】

如何使用SQLAlchemy获得有限结果的总计数.我目前正在使用Postgres,所以我知道我可以使用窗口函数.我基本上想知道如何在SQLAlchemy中编写以下内容:SELECT foo,count(*) OVER() AS full_count FROM bar ORDER BY <some col> LIMIT <pagesize> OFFSET <offset>解决方法:就像是:select([bar.c.foo,func.count().over().label('full_count'),],... )引入此票的票:http://www.sqlalchemy.org/trac/ticket/1844#comment:9

python – 更新sqlalchemy中具有计算列的表【代码】

我正在使用SQLalchemy在遗留的MSSQL数据库中工作,我有一个声明性映射.该数据库有几个具有计算列的表.我可以读得很好,但(当然)写入计算列不起作用.但是,当我创建并尝试保存ORM对象时,SQLAlchemy仍尝试在这些列中保存“无”值,从而导致错误. 我在网上发现了一些应该通过使用SQLAlchemy的hybrid_property装饰器使特定列“只读”的示例,但即使在实现之后,也会出现同样的错误(“tlog_real_timehh”列无法修改,因为它是计算列或者是UNION...

python – 具有单表继承的SQLAlchemy消除错误【代码】

我遇到了python SQLAlchemy单表继承的问题. 模型:class User(Base):__tablename__ = 'user'userID = Column(String(64), primary_key=True)name = Column(String(64))type = Column('type', String(50))__mapper_args__ = {'polymorphic_on': type}class PasswordUser(User):__mapper_args__ = {'polymorphic_identity': 'puser'}password = Column(String(64))def validatePassword(self, password):return (self.password == pa...

python – flask-sqlalchemy交叉数据库,带有“动态”模式【代码】

我正试图使用??烧瓶中的“应用工厂”模式,但我的模型似乎有鸡与蛋的问题. http://flask.pocoo.org/docs/patterns/appfactories/ 我在create_app函数中导入我的视图,该函数导入我的模型.因此,在定义模型时,我在应用程序中没有配置.这通常很好,使用绑定键,我可以设置模型连接到不同的dbs. 但是,在这种情况下,我有两组模型,一组来自默认数据库,另一组是另一个数据库连接 – 我想交叉数据库连接.我知道通常的方法是添加__table_args__ ...

SQLalchemy,Flask,Python,Connections没有返回池中【代码】

我无法搞清楚SQLalchemy – 我从flask-SQLalchemy切换到SQLalchemy以获得更多灵活性 – 但如果我无法解决这个问题,我可能会完全摆脱SQLalchemy包装器. 我正在使用本指南中的声明模式:http://flask.pocoo.org/docs/0.10/patterns/sqlalchemy/ Initapp.py#main app from flask import Flask from flask.ext import restful from flask_s3 import FlaskS3import osfrom sqlalchemy import create_engine, eventfrom sqlalchemy.orm ...

python – 如何在使用SQLAlchemy / Alembic时检查是否存在挂起的迁移?

我们正在使用SQLAlchemy和Alembic(以及Flask-SQLAlchemy和Flask-Migrate).如何检查是否有待处理的迁移? 我试图检查Alembic和Flask-Migrate的文档,但未能找到答案.解决方法:您可以使用当前子命令确定您的项目是否为最新迁移: 最近一次迁移时的输出示例: (venv)$python app.py db currentf4b4aa1dedfd(头) 关键是在修订号之后出现的(头部).这告诉你这是最近的迁移. 在添加新迁移之后,但在升级数据库之前,事情发生了变化: (venv)$...

python – SQLAlchemy – 关系不仅限于外键【代码】

我有一个带有Page和Revisions的wiki db布局.每个版本都有一个引用页面的page_id,一个与引用页面的页面关系;每个页面都与其所有修订版具有all_revisions关系.到目前为止很常见. 但是我想为页面实现不同的时期:如果页面被删除并重新创建,则新的修订版本将有一个新纪元.为帮助找到正确的修订版,每个页面都有一个current_epoch字段.现在,我想在页面上提供仅包含其修订版本的修订关系,但仅包含与历元记录匹配的修订关系. 这就是我尝试过...

python – sqlalchemy:使用声明和反射多次连接到同一个表【代码】

这是我的问题的精简版: 考虑一下我有两个表:’procedure’和’role’. role有字段:(role_uid,role_name) procedure有字段:(procedure_uid,procedure_name,inform_role_uid,consult_role_uid) 所以’角色’与’程序’有两个一对多的关系. 一些代码:class Role(Base):__tablename__ = "role"__table_args__ = ({'autoload':True, 'useexisting': True})class Procedure(Base):__tablename__ = "procedure"__table_args__ = (sql...

python – SQLAlchemy事件接口

我正在使用SQLAlchemy 0.7.我希望在session.flush()之后进行一些“后处理”,即我需要访问flush()中涉及的实例并迭代它们. flush()调用将更新数据库,但所涉及的实例也将一些数据存储在LDAP数据库中,我希望SQLAlchemy通过调用实例方法来触发对该LDAP数据库的更新. 我想我将使用after_flush(session,flush_context)事件,详细介绍here,但是如何获取update()’d实例列表? 另外,如何确定实例上哪些列已更改(或“脏”).我已经能够找出整个...

用于SQLAlchemy的Python框架

我正计划使用Turbogears 2开始一个项目.但是我注意到,特别是在stackoverflow.com上,似乎没有太多关于它的问题.根据维基百科的说法,该框架似乎仍在积极开发中(50天前发布的最后一个稳定版本).我选择TG2主要是因为它支持SQLAlchemy,我找到了一个优秀的ORM解决方案来满足我的需求. 问题: >您是否会将TG2视为具有未来或死亡技术的框架?>考虑到上一个问题的答案,您是否建议将其用于新项目?>如果答案是“否”,那么还有哪些类似于TG2的...