Backup vs Auditoria

45 views
Skip to first unread message

Andrea Zakowicz

unread,
Dec 8, 2014, 8:09:14 AM12/8/14
to djan...@googlegroups.com
Buenos días! quisiera saber si alguno tiene idea del como hacer  backup/ restauración de la base de datos y auditoria desde el admin de Django; porque simplemente lo que eh logrado es hacer desde la consola pero no me sirve! 

Rafael E. Ferrero

unread,
Dec 9, 2014, 6:42:38 AM12/9/14
to djan...@googlegroups.com
No probaste ejecutar los commandos desde django... desde una vista tal vez? o usar Django-dbbackup ??

--
Rafael E. Ferrero

El 8 de diciembre de 2014, 10:09, Andrea Zakowicz <andreaz...@gmail.com> escribió:
Buenos días! quisiera saber si alguno tiene idea del como hacer  backup/ restauración de la base de datos y auditoria desde el admin de Django; porque simplemente lo que eh logrado es hacer desde la consola pero no me sirve! 

--
Has recibido este mensaje porque estás suscrito al grupo "django-ar" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a django-ar+...@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a djan...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/django-ar.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/django-ar/2d02f0e0-9a4b-4ab3-8942-a99c9755012e%40googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Pablo Ambrosio

unread,
Dec 9, 2014, 8:37:21 AM12/9/14
to djan...@googlegroups.com
Hola Andrea,

el backup de la base de datos tenés que hacerlo desde la propia base
de datos. Django mete su ORM que no preserva bien los datos, como para
backup. Que es lo que hiciste desde consola que no te sirve?

No se a que te referís con auditoría, pero con la app
django-extensions podes imprimir un diagrama de la base de datos, para
empezar.

Saludos.
> https://groups.google.com/d/msgid/django-ar/CAJJc_8WF-6KwyhSpjxH1mTE921fEFCAPOvzHyb8a%3D5vq%2BDRtRw%40mail.gmail.com.

Andrea Zakowicz

unread,
Dec 9, 2014, 9:18:57 AM12/9/14
to djan...@googlegroups.com
Utilizo las herramientas dbbackup y auditlog.
Desde la consola ingreso a la base de datos, consulto la auditoria y realizo el backup!. Pero la idea es realizar ambas operaciones desde el admin de django. Es posible esto?
La verdad es que soy nueva en el área y no comprendo mucho.

Martín Gaitán

unread,
Dec 9, 2014, 9:24:25 AM12/9/14
to djan...@googlegroups.com
2014-12-09 11:18 GMT-03:00 Andrea Zakowicz <andreaz...@gmail.com>:
Utilizo las herramientas dbbackup y auditlog.
Desde la consola ingreso a la base de datos, consulto la auditoria y realizo el backup!. Pero la idea es realizar ambas operaciones desde el admin de django. Es posible esto?

Andrea, podés probar esto para ejecutar dbbackup desde el admin

https://github.com/liberation/django-admincommand

saludos

Andrea Zakowicz

unread,
Dec 9, 2014, 5:31:37 PM12/9/14
to djan...@googlegroups.com
Con respecto a la auditoria Django provee algo así como un historial por cada instancia de una clase!. Ese historial podría generalizarlo al menos por cada clase / modelo o por usuario? 


El lunes, 8 de diciembre de 2014 10:09:14 UTC-3, Andrea Zakowicz escribió:

fisa

unread,
Dec 9, 2014, 5:47:08 PM12/9/14
to djan...@googlegroups.com
Ojo que probablemente ese historial que estás viendo es el historial de edición del admin. Eso *no* se guarda en modificaciones que no hayan sido hechas desde el admin mismo, ya que no es funcionalidad de los modelos (orm), sino de la aplicación de admin en sí.
Por ejemplo, si desde una vista tuya hacés algo como esto:

pepe = Persona.objects.get(pk=42)
pepe.edad = 108
pepe.save()

En el admin *no* vas a ver nada de historia que diga que se le cambió la edad. Solo se ven los cambios hechos usando el admin.

Si te interesa llevar historial de todos los cambios hechos desde cualquier lugar, hacerlo con el orm sería un tanto complejo, pero esa complejidad variaría de acuerdo a qué tanto quieras abarcar (ej: hace falta loguear solo los .save()? o también los métodos de los querysets como el .update()? etc).

Y dependiendo de tu necesidad, puede o no puede ser la solución adecuada. Sería bueno que nos comentes con más detalle qué es lo que necesitás, qué datos y consultarlos de qué manera (por ejemplo, no es lo mismo decir que necesitás loguear qué acciones hizo un usuario logueado en tu sistema, que decir que necesitás loguear toda operación realizada en la db).

Saludos!



--
Has recibido este mensaje porque estás suscrito al grupo "django-ar" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a django-ar+...@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a djan...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/django-ar.

Andrea Zakowicz

unread,
Dec 9, 2014, 8:39:47 PM12/9/14
to djan...@googlegroups.com
Este es el modelo que me interesa principalmente hacer un seguimiento:
class Prueba(models.Model):
history = AuditlogHistoryField()
resultados = models.CharField(max_length=100)
descripcion = models.CharField(max_length=100)
fecha = models.DateTimeField(auto_now = True)
tipo = models.ForeignKey(TipodePrueba) 
usuario = models.ForeignKey(Perfiles)

def __unicode__(self):
return self.fecha
En la base de datos existe un tabla denominada django_admin_log que lo crea por defecto (creo); esta contiene los datos necesarios que necesito, pero desde el administrador de django no se como traer esa tabla con los datos, es mas no se si se puede realizar eso; ya que en mi proyecto no tengo el modelo de esa tabla.
No se si me explico bien.

El lunes, 8 de diciembre de 2014 10:09:14 UTC-3, Andrea Zakowicz escribió:

fisa

unread,
Dec 10, 2014, 11:46:19 AM12/10/14
to djan...@googlegroups.com
Ese campo AuditlogHistoryField es de django-auditlog, no? Desconozco esa app, nunca la usé.

Sobre la tabla django_admin_log, eso es el model django.contrib.admin.models.LogEntry. En el admin ya se muestra esa info, en el botón "history" que ves al entrar a editar una instancia de cualquier modelo que se vea en el admin: http://i.imgur.com/PMNdmWr.png

Pero si querés ver un abm aparte, como un modelo normal, bastaría con agregar esto a algún admin.py de alguna de tus apps (podés customizarlo más, usando una clase que herede de ModelAdmin, etc):

from django.contrib.admin.models import LogEntry
admin.site.register(LogEntry)

Saludos!

--
Has recibido este mensaje porque estás suscrito al grupo "django-ar" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a django-ar+...@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a djan...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/django-ar.

Andrea Zakowicz

unread,
Dec 10, 2014, 3:50:10 PM12/10/14
to djan...@googlegroups.com
Si el campo AuditlogHistoryField es de django-auditlog. Yo también desconozco esa app pero lo estuve probando. 
Muchas gracias por las ayudas!!


El lunes, 8 de diciembre de 2014 10:09:14 UTC-3, Andrea Zakowicz escribió:
Reply all
Reply to author
Forward
0 new messages