问题标签 [ponyorm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
104 浏览

ponyorm - 连接 PonyORM 的问题

我发现 Pony 是用于小型项目的好工具。但是,当您的项目增长到某个点时,将 @db_session 放置在您的函数中对于编写的每个函数几乎都是强制性的。

遵循 SOLID 原则,我正在尝试连接 PonyORM。然而,事实证明并不像我想象的那么容易。

这是我试图做的一个例子。但是,当我执行以下操作时遇到了问题:

如果我理解正确的话,在做user.phone_numbers.count()一个新pony.orm.core.Query对象的时候会创建一个。

我想改为返回一个CustomQuery允许 db_session 持续存在的对象。

关于如何做到这一点的任何想法?或者其他人处理一堆@db_session装饰器的其他方式?

0 投票
1 回答
264 浏览

python - ponyORM:如何绕过选择限制

我想通过在多个条件下连接多个表来选择行......它失败了。 PonyORM似乎限制了“if语句”中的条件数量。

为了重现,在 estore.py / test_queries (PY3.6, PonyORM 0.73) 中,一个愚蠢的例子:

如果Nbr of c.country! = 'A' <= 24,它可以工作,但是>= 25,它在 decompile.py 中失败

如何绕过这个限制,烦人的查询有很多表和条件?

编辑: 作为一种解决方法,我们可以通过添加.where来拆分查询

0 投票
3 回答
220 浏览

python - Python/ PonyORM /MySQL - 使用多个 URL Args 进行查询

我有一个网址https://example.com?p1=nai&p2=tex&p3=mak

我在 MYSQL 上使用 PONY ORM + Flask。我想获取与 URL 参数匹配的所有行。p1、p2 和 p3 是表上的字段,可以根据用户输入而变化

在 MySQL 中,我会做类似的事情 [SELECT * FROM Table Name WHERE p1=nai&p2=tex]

在我的 PONY/Flask 代码下方

我上面的查询只返回第一个参数的匹配项。即如果 p1 = nai 那么它将返回所有 p1= nai 并忽略其余部分。我错过了什么?注意:不要担心 SQL 注入

0 投票
1 回答
369 浏览

unit-testing - 模拟小马 ORM 实体

我正在尝试测试这样的功能:

测试:

但我收到此错误: TypeError: Cannot iterate over non-entity object

关于如何创建假实体并测试功能的任何想法?

0 投票
1 回答
435 浏览

python - pony.orm 中与 create_tables=False 的关系

目的是让两个简单的类代表数据库中已经存在的两个相关表。
代码是:

我试图遵循我在文档中看到的方法,但是执行上面的代码给了我:

psycopg2.ProgrammingError:列结构。系统不存在
第 1 行:...ctures"."structure_id", "structures"."system_id", "structure...

提示:也许您的意思是引用列“structures.system_id”。

这里缺少什么?

0 投票
1 回答
2393 浏览

ponyorm - PonyORM 中的模式迁移

如果修改了使用在线编辑器创建的模式,PonyORM 是否会执行所需的ALTER TABLE语句来升级模式?

0 投票
1 回答
206 浏览

ponyorm - Comparing entity instances in PonyORM

I am trying to compare PonyORM entity instances for identity/equality. Consider the following code, using the estore example database:

Entities with the same primary key test as identical and equal if and only if retrieved in the same db_session.

  1. What is the rationale behind this behaviour? (From the docs: If object with the specified primary key was already loaded into the db_session() cache, Pony returns the object from the cache without sending a query to the database. This explains the result of the identity test. I would still expect to see equality in both test 1 and 2.)

  2. What is the recommended way to test for equality (other than comparing primary keys)?

0 投票
1 回答
524 浏览

python - 带有 psycopg2 的 Ponyorm:服务器意外关闭了连接(会话超时?)

我正在使用示例中的标准小马“架构”。如果我执行以下步骤,则会出现问题:

  1. 开始申请。我可以正常使用数据库
  2. 我可以通宵做压力测试,一切顺利
  3. 如果我在 10 到 15 分钟内什么都不做,然后我尝试执行某些操作,我会收到以下异常消息:

版本:

  • 小马。版本 “0.7.3”

  • psycopg2。版本 “2.7.5(dt dec pq3 ext lo64)”

  • 蟒蛇3.6

过了一会儿,光标断开连接,psycopg2抛出一个Operational Error,由小马重新提出。

注意:我已经为ponyorm创建了一个问题,但是我不能 100% 确定这是小马的错误。一些调查的问题在这里:https ://github.com/ponyorm/pony/issues/357

0 投票
1 回答
1687 浏览

python-3.6 - 如何检查小马 orm 缓存中是否存在对象?

我正在尝试一些数据处理,然后一次性插入,表有一些复合键,我用它们来检查该 Id 的记录是否存在,然后它应该更新记录而不是创建。

虽然数据处理有可能在样本数据中多次存在相同的 ID,并且在处理时它不会在 db 中找到与该 ID 匹配的记录,因此它每次都尝试创建记录。

有什么方法可以检查缓存中的复合键匹配吗?

0 投票
2 回答
1029 浏览

python - "ALTER TABLE" to add a database column with Pony ORM

I try to update an SQL database using Pony ORM, but I didn't found how to ALTER an SQL table to add a column.

What i want to do is:

Could someone help me?