2010-05-07 23 views
15

Bir Pylons uygulaması yazıyorum ve her tablonun bir yönetici için tek bir dosyaya serileştirildiği ve düzenlendiği basit bir yedekleme sistemi oluşturmaya çalışıyorum ve kötü bir şey olması durumunda uygulamayı geri yüklemek için kullanın.SqlAlchemy bir yedek nasıl oluşturulur ve geri yüklenir?

Tablo verilerimi SqlAlchemy serializer kullanarak iyice serileştirebilir ve ben de iyi bir şekilde seri hale getirebilirim, ancak bu değişiklikleri veritabanına nasıl geri yükleyeceğimi anlayamıyorum. serialized_data kullanarak geri girişimi

şeyleri test etmek için
from myproject.model.meta import Session 
from sqlalchemy.ext.serializer import loads, dumps 
q = Session.query(MyTable) 
serialized_data = dumps(q.all()) 

, o zaman devam edin ve kırpma MyTable ve:

from myproject.model import meta 
restore_q = loads(serialized_data, meta.metadata, Session) 
benim verilerini seri için

bunu yapıyorum

Bu bir şey yapmıyor gibi görünüyor ... Session.commit numaralı telefonu arayarak, restore_q numaralı telefondaki tüm nesneleri tek tek gözden geçirip çalışıyorum ama hiçbir şey işe yaramadı.

Neyi eksik? Ya da benim hedeflediğim şeyi yapmanın daha iyi bir yolu var mı? SqlAlchemy farklı veritabanı motorlarını desteklediğinden, dışarı çıkıp veritabanına doğrudan dokunmak istemiyorum.

cevap

10

Serileştirilmiş nesneyi oturuma geri koymak için Session.add() yerine yöntemini kullanmanız gerekir.

+0

Yaşasın! Mükemmel çalışıyor, teşekkürler! – swilliams

İlgili konular