rails modelos generate example basics ruby-on-rails versioning acts-as-versioned vestal-versions

ruby-on-rails - modelos - rails generate model example



Versiones de modelos en Ruby on Rails (6)

Estoy buscando un plugin / act para permitir la versión de mis modelos. Es un poco difícil encontrar una lista de las soluciones disponibles. Hasta ahora he recogido:

  • acts_as_versioned
  • simply_versioned
  • vestal_versions

Las dos últimas soluciones solo requieren una tabla de una sola versión; esto suena bien, pero tengo un mal presentimiento acerca de cómo la facilidad de las migraciones se verá afectada por esto (porque serializan los estados como una cadena).

Por otro lado, acts_as_versioned es un poco polvoriento (último compromiso en enero). ¿Hay alguna experiencia reciente con alguno de estos? ¿O otras soluciones (o bifurcaciones) que podría haber pasado por alto?



He estado trabajando con una gema llamada "paper_trail". Parece ser la mejor solución en línea en este momento. Cuenta con auditoria y control de versiones en uno.

http://github.com/airblade/paper_trail

¡Espero que esto ayude!



Oye, me pregunto si alguien ha pensado en utilizar Perforce, GitHub, etc. en el backend ¿INSTEAD de una base de datos como una forma de admitir el control de versiones? Entonces, esencialmente sería una recuperación de datos basada en archivos, supongo ...


Trabajé con vestal_versions semana pasada y sí, es la alternativa más avanzada, al menos en términos de espacio: almacena justo lo que realmente necesita. Es un proyecto activo y la versión 1.0 será una gran actualización con muchas características nuevas; sólo mira la rama 1.0 para saber a qué me refiero.

Pero después de jugar un poco con él, noté una gran falla: el rendimiento. Cada vez que necesita una versión específica, debe pasar por todas las versiones intermedias, reconstruyendo la versión que necesita. Esto también significa que no puede editar o eliminar una versión directamente, ya que puede alterar las modificaciones, rompiendo la cadena. Para hacer esto, necesita procesar las versiones adecuadamente, lo que no hace vestal_versions actualmente.

De esta manera, para el problema que tenía, terminé con mi propia solución de control de versiones. Necesitaba rendimiento y la capacidad de eliminar y editar versiones rápidamente, por lo que sacrificé el almacenamiento y desarrollé algo similar a act_as_versioned .

PERO, si no necesita esto y no tiene que revertir con mucha frecuencia, recomiendo encarecidamente vestal_versions . Es una solución avanzada, sólida y activa, con un desarrollador apasionado detrás de ella.