问题标签 [sqlobject]

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 回答
1120 浏览

python - 使用 SQLObject 将数据从一个 sqlite 数据库迁移到多个 SQLite 数据库

到目前为止,我们的应用程序一直在使用一个以 SQLObject 作为 ORM 的 SQLite 数据库。显然,在某些时候我们知道我们必须面对 SQLite 并发问题,所以我们做到了。

我们最终将当前数据库拆分为多个数据库。这意味着每个表模式保持不变,但我们将不同的表分布到多个数据库中,将紧密耦合的表保持在一起。

现在,这在我们应用程序的新版本的全新安装中非常有效,但是升级到我们应用程序的以前版本到这个新版本需要在我们的应用程序开始工作之前进行特殊的数据迁移。在这种情况下,数据库迁移很简单,将表从这个单一数据库移动到适当的不同数据库中。

举例来说,考虑这是较旧的结构:

single_db.db --- 单个数据库

新结构:

db1.db --- 数据库 1

db2.db --- 数据库 2

db3.db --- 数据库 3

当升级发生时,我们的应用程序将使用上述 3 个数据库和其中的空表创建新结构。带有所有表和实际数据的旧数据库 single_db.db 也将在那里。现在,在我们的应用程序开始工作之前,它应该移动表,或者我应该说将数据从旧数据库中的表复制到相应新数据库中的相应表中。

我需要为此数据库迁移编写代码。我知道我可以使用较旧的数据库连接查询表,并使用较新的数据库连接将返回的行插入到相应的表中。我应该在这里提到的一个警告是,其中一些表可以包含大量行。也就是说,2/3 表中的行数可以达到 2 - 250 万。

所以想问一下我是否可以使用任何其他 SLQObject 技巧,因为我在 SQLite 之上使用 SQLObject 并且以前有没有人这样做过?

谢谢你的帮助。

0 投票
1 回答
253 浏览

python - SQLObject中同一张表的ManyToMany关系

我的 google foo 在这方面做得不够,所以我把它扔给这里的天才。

我正在编写一些啤酒配方创建软件,并且我在 SQLObject 中有一个类,我希望将一个 RelatedJoin 返回到自身。但它不起作用。

如果重要的话,我正在使用 SQLite3。

这是表格:

这是错误:

这是生成数据库的函数

0 投票
1 回答
668 浏览

python - 如何使用带有 SQLObject 的 webpy 管理数据库连接?

Web.py有自己的数据库 API,web.db。可以改用 SQLObject,但我找不到描述如何正确执行此操作的文档。我对管理数据库连接特别感兴趣。最好在 wsgi 入口点建立连接,然后重用它。Webpy 食谱包含如何使用 SQLAlchemy 执行此操作的示例。我很想知道如何使用 SQLObject 正确地做类似的事情。

这就是我目前的做法:

这显然是低效的,因为它在每次查询时都建立一个新的数据库连接。我确信有更好的方法。

0 投票
3 回答
1462 浏览

json - 从 SQLObject 创建 JSON 对象的更简单方法

编辑 - 从下面获取代码并使其可以处理 ForiegnKeys、十进制数(尽管我正在执行非常强制的浮点转换)。它现在返回一个字典,所以它可以是递归的。

编辑——更改为添加实际数据模型——生成需要访问的值和需要处理的 Decimal() 列。

所以我已经看到了:return SQL table as JSON in python但这并不是我真正想要的——那是“蛮力”——你需要知道对象属性的名称才能生成JSON 响应。

我想做的是这样的(类的名称及其属性并不重要)

有没有一种简单的方法,pythonic 方法来编写那个神奇的 to_json() 函数?

0 投票
1 回答
105 浏览

python - 一种基于字符串构建类的更 Pythonic 方式(如何不使用 eval)

好的。

所以我有一个数据库,我想在其中存储对其他 Python 对象的引用(现在我正在使用存储啤酒配方成分的个人商店的库存信息)。

由于大约有 15-20 种不同类别的成分(全部由单独的 SQLObjects 表示),我不想做一堆 RelatedJoin 列,因为我很懒,而且看起来它不是“最好的”或“pythonic”解决方案原样。

所以现在我正在这样做:

请注意eval()_get_name() 方法中的 ICKY。

__class__.__name__我将如何在不使用的情况下调用我从中获取的字符串引用的 SQLObject 类eval()?或者这是一个合适的地方使用eval()?(我有点不适合使用它的心态eval()——但是,由于系统从不使用任何最终用户输入,eval()它似乎“安全”。)

0 投票
1 回答
382 浏览

python - 好主意/扩展 Spine.Model 的最佳方式

[下面的背景] 我在后端的 Python 中用 SQLObject 建模了我的数据。现在我正在将 SQLObject 转换为 dict,并从 dict 中获取所有键,然后将其导出为 JSON 文档(所以只是一个 JavaScript 数组)。我打算做类似的事情:

这是一个好主意吗?Spine 是否已经提供此功能?这是扩展 Spine.Model 类的最佳方式吗?

背景:

所以。我有一个 Python 应用程序,我一直在使用 Flask 从 GUI 应用程序移植到 Web 应用程序。

我已经到了我正在做视图部分的地步,并意识到使用 JavaScript 框架来操作数据/控制应用程序/等会很有意义。

经过大量研究后,我选择了 Spine(API 在第一次阅读时对我来说是最有意义的,加上作者写了 O'Reilly 的书 JavaScript Web Applications 所以有一个不错的参考)。

由于我已经在后端建模了我的数据,我想导出该配置并使用它自动创建 Spine 模型,以便它们记录的数据始终保持同步(如果我改变了这种方式我的后端模型,前端会在下一页加载时自动更改)。

0 投票
2 回答
373 浏览

python - 选择 Python/SQLObject 网络框架

我有一个常规的桌面应用程序,它是用 Python/GTK 和 SQLObject 作为 ORM 编写的。我的目标是创建一个用户可以登录和同步/编辑数据库的网络界面。我的应用程序被分成不同的模块,所以数据库和 gtk 代码是完全分开的,所以我也想在网络服务器上运行相同的数据库代码。

所以,我想知道是否有可以处理这些标准的网络框架:

  • 用户认证
  • 使用我自己的数据库代码/SQLObject
  • 一些构建基本 ui 的小部件

这将是我的第一个网络项目,所以我对所有搜索结果感到有些困惑。CherryPy、Turbogears、web2py、金字塔?如果有人能给我一些指示,在我的情况下什么是一个好的框架,我会很高兴。

0 投票
0 回答
212 浏览

python - 从 SQLObject 迁移到 SQLAlchemy :: SQLAlchemy 可以支持零缓存和自动加载表更新吗?

我想知道当另一个进程更新同一对象的某些属性时,SQLAlchemy 是否可以支持从数据库即时加载对象的当前状态。

我想提一下,我正在从 SQLObject 迁移到 SQLAlchemy。目前,使用 SQLObject,我有一张表,例如:

如您所知,此 cacheValues=False 设置会立即将属性更新刷新到磁盘:

即时 attr1 设置为“某个值”,该值可用于使用相同对象 my_config 的另一个进程。

我已经阅读了 SQLAlchemy 的 ORM 和 Core 的基本教程,据我所知,我可以通过使用 session.merge() 来实现这一点,因为除非我添加或合并,否则 SQLAlchemy 中的“my_config”状态不会变为挂起/脏,并且 autoflush=True,后续查询将重新读取表中的行。

我认为的另一个选择是我可以覆盖 MyConfiguration 中的setattr以立即刷新对实例的更改。但是,我不喜欢这样,因为这很难看,我想尽可能多地使用 SQLAlchemy 的功能,而不是破解一些东西。

所以我试图在 SQLAlchemy 中找到这个 SQLObject 的特性的完全匹配。这可能吗?

在此先感谢您的帮助。

0 投票
4 回答
1560 浏览

mysql - 如何在 Iron python 上安装和使用 sqlobject+mysql?

是否可以使用sqlobject从 Iron python 连接到 mysql 数据库?如果是这样,怎么做?我必须安装什么?

我为 cpython 安装了 sqlobject,它工作正常,但是如果我在 ironpython 中使用相同的包,我会得到“ImportError:没有名为 _mysql 的模块”。我理解这意味着 Ironpython 无法加载访问 mysql API 所需的基于 C 的 .dll。解决方法是什么,或者有什么解决方法?

0 投票
0 回答
127 浏览

python-2.7 - 当我读取它们时,SQLObjectlazyupdate 将字段重置为默认值(python 2.7,postgresql 9.1)

我正在尝试使用 SQLObject 的lazyUpdate 功能,但我的数据被破坏了。这是类定义

上下文管理器功能是这样我可以写:

当我创建对象时,一切似乎都正常。但是,当我只是读取对象时,具有默认值的字段(bar如上)将被重置为其默认值。

例如,如果我这样做

反复我发现我第一次获得正确的数据时,随后的一些或所有行的值被它们的默认值替换。最终,所有行都重置为默认值。没有默认值的字段不会被触及。

如果我注释掉lazyUpdate在类定义中设置的行,它可以正常工作(可能还有更多写入数据库)。如果我注释掉syncUpdate对它的调用仍然失败。将默认值更改为不同的值(如 -1)仍然失败。这不是一些挥之不去的架构设置,因为我已经删除了表并多次重新创建它,因为我一直在尝试解决问题。

FWIW,我正在使用 SQLObject 1.3.1、Python 2.7 和 PostreSQL 9.1。