首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用事务的用户列?

如何使用事务的用户列?
EN

Stack Overflow用户
提问于 2016-08-29 19:28:26
回答 2查看 810关注 0票数 2

我得到了使用sqlalchemy-continuum的建议,它似乎做了我想要的开箱即用的东西。

默认情况下,ORM假定有一个用户列。我确实想保存编辑的创建者,但documentation只说“这就是您指定用户类的方式”,而没有说明在实际使用版本化表时如何指定这样的对象。

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

EN

回答 2

Stack Overflow用户

发布于 2017-01-25 08:53:16

如果您可以从某个全局作用域(如flask.g或flask.request)获取用户,则可以创建一个插件,实现transaction_args()方法:

代码语言:javascript
复制
from sqlalchemy_continuum.plugins import Plugin


class UserPlugin(Plugin):

    def transaction_args(self, uow, session):
        return {
            'user_id': get_user_from_globals()
        }

参见plugins/flask.pypyramid_plugin.py。您应该返回用户模型的主键值。

您可以使用TransactionMeta plugin将其他数据保存在单独的表中。没有记录在案的API来扩展事务类本身。它是由TransactionFactory创建的,但在以后的版本中可能会发生变化。将额外的数据分开可能是一个好主意。

票数 3
EN

Stack Overflow用户

发布于 2018-06-26 14:00:49

使用此选项进行本机版本控制:

代码语言:javascript
复制
from sqlalchemy_continuum import make_versioned
make_versioned(options={'native_versioning': True},
               user_cls=None)

它为db中的每个表创建版本表。每当表中有更新时,它都会在版本表中为旧数据创建条目。

这将创建以下新列: transaction_id、end_transaction_id、{orgion_table}_version中的operation_type

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39205191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档