Escribo una aplicación Pylons, y estoy tratando de crear un sistema de copia de seguridad simple donde cada tabla se serialice y empate en un solo archivo para que un administrador la descargue y la use para restaurar la aplicación en caso de que algo malo ocurra.Cómo crear y restaurar una copia de seguridad desde SqlAlchemy?
Puedo serializar los datos de mi tabla muy bien usando el SqlAlchemy serializer, y puedo deserializarlo bien también, pero no puedo encontrar la forma de volver a introducir esos cambios en la base de datos.
Con el fin de serializar los datos de mi que 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())
Con el fin de probar las cosas, sigo adelante y el truncamiento MyTable
, y luego intentar restaurar utilizando serialized_data
:
from myproject.model import meta
restore_q = loads(serialized_data, meta.metadata, Session)
Esto no parece hacer nada ... Intenté llamar a Session.commit
después del hecho, caminando individualmente por todos los objetos en restore_q
y agregándolos, pero parece que nada funciona.
¿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 es compatible con diferentes motores de base de datos.
¡Hurra! Funciona perfectamente, gracias! – swilliams