15
我正在寫一個Pylons應用程序,並且正在嘗試創建一個簡單的備份系統,其中每個表都被序列化並將其tar化爲單個文件供管理員下載,並在應用程序發生故障時使用它恢復應用程序。如何從SqlAlchemy創建和恢復備份?
我可以使用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支持不同的數據庫引擎,所以我不想直接觸及數據庫。
Hooray!完美的作品,謝謝! – swilliams 2010-05-07 14:10:08