[英]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.