簡體   English   中英

如何從SqlAlchemy創建和恢復備份?

[英]How to create and restore a backup from SqlAlchemy?

我正在編寫一個Pylons應用程序,並且正在嘗試創建一個簡單的備份系統,其中每個表都被序列化並且被壓縮成單個文件供管理員下載,並且如果發生了不好的事情,則用於恢復應用程序。

我可以使用SqlAlchemy序列化程序很好地序列化我的表數據,我也可以很好地反序列化它,但我無法弄清楚如何將這些更改提交回數據庫。

為了序列化我的數據,我這樣做:

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()將反序列化的對象放回會話中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM