Sto scrivendo un'app Pylons e sto provando a creare un semplice sistema di backup in cui ogni tabella viene serializzata e tarata in un unico file da scaricare da un amministratore, e utilizzare per ripristinare l'app in caso di problemi.Come creare e ripristinare un backup da SqlAlchemy?
Posso serializzare i dati della mia tabella con il numero SqlAlchemy serializer e posso anche deserializzare bene, ma non riesco a capire come riportare tali modifiche nel database.
Per serializzare miei dati sto facendo questo:
from myproject.model.meta import Session
from sqlalchemy.ext.serializer import loads, dumps
q = Session.query(MyTable)
serialized_data = dumps(q.all())
Al fine di testare le cose, vado avanti e troncamento MyTable
, e quindi tentare di ripristino tramite serialized_data
:
from myproject.model import meta
restore_q = loads(serialized_data, meta.metadata, Session)
Questo non sembra fare nulla ... Ho provato a chiamare un Session.commit
dopo il fatto, camminando individualmente tra tutti gli oggetti in restore_q
e aggiungendoli, ma niente sembra funzionare.
Cosa mi manca? O c'è un modo migliore per fare ciò che sto puntando? Non voglio eseguire il bombardamento e toccare direttamente il database, poiché SqlAlchemy supporta diversi motori di database.
Urrà! Funziona perfettamente, grazie! – swilliams