example - sqlalchemy engine python
¿Cómo crear y restaurar una copia de seguridad desde SqlAlchemy? (1)
Estoy escribiendo una aplicación Pylons, y estoy tratando de crear un sistema de copia de seguridad simple donde cada tabla se serializa y se agrupa en un solo archivo para que un administrador la descargue, y la use para restaurar la aplicación en caso de que algo malo suceda.
Puedo serializar bien los datos de mi tabla utilizando el serializador SqlAlchemy , y también puedo deserializarlo bien, pero no puedo descubrir cómo devolver esos cambios a la base de datos.
Para serializar mis datos estoy haciendo esto:
from myproject.model.meta import Session
from sqlalchemy.ext.serializer import loads, dumps
q = Session.query(MyTable)
serialized_data = dumps(q.all())
Para probar las cosas, sigo adelante y truncando MyTable
, y luego intento restaurar usando serialized_data
:
from myproject.model import meta
restore_q = loads(serialized_data, meta.metadata, Session)
Esto parece no hacer nada ... He intentado llamar a Session.commit
después del hecho, recorriendo individualmente todos los objetos en restore_q
y agregándolos, pero nada parece funcionar.
¿Qué me estoy perdiendo? ¿O hay una mejor manera de hacer lo que estoy buscando? No quiero pagar y tocar directamente la base de datos, ya que SqlAlchemy admite diferentes motores de base de datos.
Session.merge()
utilizar el método Session.merge()
lugar de Session.add()
para volver a poner el objeto deserializado en la sesión.