gpt4 book ai didi

python - 如何从 SqlAlchemy 创建和恢复备份?

转载 作者:IT老高 更新时间:2023-10-28 20:48:38 26 4
gpt4 key购买 nike

我正在编写一个 Pylons 应用程序,并且正在尝试创建一个简单的备份系统,其中每个表都被序列化并打包成一个文件供管理员下载,并在发生坏事时用来恢复应用程序。

我可以使用 SqlAlchemy serializer 很好地序列化我的表数据,我也可以很好地反序列化它,但我不知道如何将这些更改提交回数据库。

为了序列化我的数据,我这样做:

from myproject.model.meta import Session
from sqlalchemy.ext.serializer import loads, dumps
q = Session.query(MyTable)
serialized_data = dumps(q.all())

为了进行测试,我继续截断 MyTable,然后尝试使用 serialized_data 进行恢复:

from myproject.model import meta
restore_q = loads(serialized_data, meta.metadata, Session)

这似乎没有做任何事情......事实上,我已经尝试调用 Session.commit ,单独遍历 restore_q 中的所有对象和添加它们,但似乎没有任何效果。

我错过了什么?还是有更好的方法来做我的目标?因为SqlAlchemy支持不同的数据库引擎,所以我不想掏空直接接触数据库。

最佳答案

您必须使用 Session.merge()方法而不是 Session.add() 将反序列化的对象放回 session 中。

关于python - 如何从 SqlAlchemy 创建和恢复备份?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2786664/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com