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.