Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Registro de versiones BD

1 de febrero de 2016

Saludos.

Estoy trabajando con symfony 2.8.

Si alguien a hecho un registro de versiones de los registros tablas de la bd.

Cuando un usuario modifica o elimine un tupla/atributo de una tabla quede un registro.

Alguien podria darme una idea de donde comenzar a tratar este asunto.

Gracias por sus respuestas y comentarios futuros.


Respuestas

#1

Hola:

Si te he entendido bien, es que quieres guardar la entidad, el valor antiguo y el nuevo ¿No? Pues yo crearía un servicio al cual le paso por parámetros, la entidad antes de editarla y la de después (Para hacer esto, simplemente puedes clonar el objeto y listo) y en el servicio con get_class obtienes el nombre del objeto y luego comparas valor por valor cuales son diferentes y los salvas en una nueva tabla.

Facil, sencillo y para toda la familia.

@TsubasaAkai

1 febrero 2016, 22:45
#2

Hola @dariongg,

Puedes comenzar con la extension loggable del paquete StofDoctrineExtensionsBundle, una vez lo instalas en solo 3 pasos tienes un log sencillo de las acciones de una entidad.

  • Configuras la extensión en config.yml

    orm:
        mappings:
            gedmo_loggable:
                type: annotation
                prefix: Gedmo\Loggable\Entity
                dir: "%kernel.root_dir%/../vendor/gedmo/doctrine-extensions/lib/Gedmo/Loggable/Entity"
                alias: GedmoLoggable # (optional) it will default to the name set for the mappingmapping
                is_bundle: false
  • Activas la extensión en el mismo config.yml

    stof_doctrine_extensions:
    default_locale: "%locale%"
    orm:
        default:
            loggable: true
  • Adicionas la extensión en la tabla que quieras hacer el log
namespace AppBundle\Entity;
 
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
 
/**
 * AppBundle\Entity\Product
 *
 * @ORM\Table(name="tb_main_product")
 * @Gedmo\Loggable
 */
class Product
{

Y eso es todo, espero sea de ayuda.

@miguelplazasr

7 febrero 2016, 14:38
#3

Existe un bundle para eso: https://github.com/simplethings/EntityAudit

@ramiroanacona

11 febrero 2016, 4:29