问题标签 [sqlalchemy-continuum]

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

python - SQLAlchemy-Continuum 和 Pyramid:UnboundExecutionError

我有一个Pyramid应用程序,它通过pyramid_basemodel使用SQLAlchemy进行 CRUD 。一切似乎都很好。

然后我 pip 安装了SQLAlchemy-Continuum,为某些对象提供历史记录。我所做的配置就是对我的 models.py 文件进行以下更改:

(对于稍微多余的导入,我感到抱歉;我决定完全遵循 Continuum 示例import sqlalchemy as sa,并切换到在我版本化的模型中使用该符号。我也可能在做愚蠢的,猴子看猴子做的事情,基于一个半-理解不同的教程。)

此设置允许我alembic revision --autogenerate在数据库中运行和生成 ModelHistory 表,但是当我转到一些读取现在版本化模型的页面时,它们会给出错误

出于某种原因,它读取以相同方式添加的一个模型,但随后尝试更新它失败并出现相同的错误。

我的猜测是,我需要配置 Continuum 用于 SQLAlchemy 会话的任何内容,以指向 Pyramid 中配置的现有会话,但我不确定。我变热了吗?

0 投票
0 回答
1044 浏览

python - `sqlalchemy.exc.InvalidRequestError:使用 SQLAlchemy-Continuum 扩展时,在连接表继承场景中隐式组合列(...)`

当我尝试使用 SQLAlchemy-Continuum 扩展从 Kotti 项目对表进行版本控制时,我遇到了sqlalchemy.exc.InvalidRequestError: Implicitly combining column(...)错误。这些表使用连接表继承方法对继承进行建模。基于来自 Kotti 的原始代码,我创建了显示问题的最小测试用例(test.py如下)。该错误可以在文件内容之后的回溯中看到,如下所示:

sqlalchemy.exc.InvalidRequestError:将列 contents_version.transaction_id 与属性“transaction_id”下的列 nodes_version.transaction_id 隐式组合。请为这些同名列显式配置一个或多个属性。

正如最后一个调试行所说

INFO:sqlalchemy.orm.mapper.Mapper:(DocumentVersion|documents_version) _configure_property(transaction_id, Column)

很明显,错误发生在模型transaction_id属性的配置过程中DocumentVersion。此模型由 SQLAlchemy-Continuum 扩展自动创建,以跟踪原始Document模型中的更改。我猜想 SQLAlchemy-Continuum 扩展不能正确处理这种情况(连接表继承),但我不知道如何解决这个问题。我已经阅读了 SQLAlchemy 的常见问题解答条目,标题为“我收到关于“在属性 Y 下隐式组合列 X”的警告或错误</a>,但鉴于错误来自扩展,我仍然不知道在哪里可以解决这个问题.

我在 SQLAlchemy-Continuum 的跟踪器上和 SQLAlchemy 的邮件列表上提出了这个问题,没有回复。

SQLAlchemy-Continuum 1.2.0,SQLAlchemy 1.0.8

test.py


输出和回溯:


0 投票
2 回答
876 浏览

python - 使用 odo 函数时如何解决 utf-8 错误?OperationalError: (sqlite3.OperationalError) 无法解码为 UTF-8 列

我是新来的。我有一个用于迁移数据库的简单功能:

在 SQLite 数据库上运行它。

我收到以下错误。

我该如何解决这个问题?

OperationalError:(sqlite3.OperationalError)无法解码为 UTF-8 列“V_WIMS_WELLS$COMMENTS”,文本为“2013 年 12 月 29 日:与 SAP 问题相关,WO# 已关闭,但仍出现在 WIMS 中以供确认。

WPH-41 切割表面 CSG 9-5/8¿ 在 b

PS :- 我知道我们可以在 sqlalchemy 中显式设置 textfactory

我不知道如何在 odo 函数中修复它

#

通过显式传递元数据来编写函数的第二次尝试会导致以下错误

错误:-

0 投票
2 回答
844 浏览

sqlalchemy-continuum - 如何使用用户列进行交易?

我得到了使用 sqlalchemy-continuum 的建议,这似乎非常符合我的要求。

默认情况下,ORM 假定存在用户列。我确实想保存编辑的发起者,但文档只说“这是您指定用户类的方式”,而没有说明在实际使用版本控制表时如何指定这样的对象。

如何指定负责交易的用户?是否有类似的方法可以为每个事务添加提交消息/原因/引用(VARCHAR)?

0 投票
1 回答
1623 浏览

python - 将 sqlalchemy-continuum 与 flask-sqlalchemy 和 flask-migrate 一起使用

我正在尝试让 sqlalchemy-continuum 与 flask-sqlalchemy 和 flask-migrate 一起工作。我的__init__.py文件如下所示:

我的 models.py 文件如下所示:

然后我运行以下 flask-migrate 命令来初始化和迁移数据库:

flask db upgrade 命令的输出似乎显示了正在创建的正确表:

在 python shell 中,我可以执行以下操作:

这似乎工作正常,但是当我尝试使用以下方式访问版本属性中的元素时:

我收到以下错误:

命令:

返回:

这似乎不是sqlalchemy-continuum 文档中指定的版本属性的预期行为。关于我做错了什么有什么想法吗?

0 投票
1 回答
466 浏览

python - 如何在 Flask-admin 中显示版本化数据(SQLAlchemy-Continuum)

我正在使用 SQLAlchemy-Continuum 对我的一个 sqlalchemy 对象的数据记录进行版本控制。

示例代码:

要查看 flask_admin-dashboard 中的表格,我使用以下代码:

但是如何将版本化历史表添加到烧瓶管理仪表板?当我直接连接到我的 mariaDB 时,我可以看到表和版本化数据记录。

非常感谢任何帮助。十分感谢!最好的问候西蒙

0 投票
1 回答
1166 浏览

python - SqlAlchemy Continuum:未创建历史和事务表

我正在尝试将sqlalchemy-continuum版本控制集成到使用 flask-sqlalchemy 的现有应用程序中。

我有一个__versioned__ = {}我想要版本化的模型,例如:

我正在尝试按如下方式初始化 sqlalchemy-continuum:

但是没有创建事务表和历史表。我可以看到 continuum 正在尝试创建记录,但没有表:

我初始化它的方式有问题。知道我做错了什么吗?

0 投票
0 回答
151 浏览

sqlalchemy - 在哪里使用多个 Python 模块调用 sqlalchemy configure_mappers

我有一个多类 sqlalchemy 实现的模型。它跨越多个 Python 模块,并包括跨越这些模块的关系。我想为我的模型添加版本控制,我决定使用 sqlalchemy-continuum。

sqlalchemy-continuum 的文档中,它说“在你定义了所有模型之后,调用 configure_mappers:”。但他们使用单个 Python 模块作为示例。

问题:当使用多个 Python 模块来实现 sqlalchemy 模型时,应该在哪里调用 sqlalchemy 的实用函数 configure_mappers 以便在定义所有模型后才调用它?

0 投票
0 回答
188 浏览

python - SQLAlchemy-Continuum 如何在变更集中存在的多对多关系中进行更改

我正在尝试使用包跟踪多对多关系的变化SQLAlchemy-Continuum

不幸的是,变更db.String集中只存在对简单字段的更改,例如。

如何对 中存在的关系字段进行更改changeset

文档中有一些关于多对多关系的片段,但文档缺少示例。https://sqlalchemy-continuum.readthedocs.io/en/latest/api.html#sqlalchemy_continuum.relationship_builder.RelationshipBuilder.build_association_version_tables

任何帮助和示例将不胜感激。

0 投票
0 回答
218 浏览

python - 带有 Automap Base 的 sqlalchemy-continuum

我正在尝试将 SqlAlchemy 与 Sqlalchemy-continuum 集成。我使用 Automap 功能而不是创建声明性类,我无法使用 automap 功能的连续统一体。文档中也没有关于相同的示例或引用。

有没有人使用过这个特性的 SqlAlchemy-continuum。

注意 - 我正在为 postrgesql 使用自定义模式,该模式不是 postrges 附带的默认模式。

还添加了一些代码供参考:

我也尝试在不同的地方配置映射器,包括在 Base.prepare 之后,但无济于事。还尝试手动在数据库中创建历史表。

任何帮助表示赞赏。