Manejo del contenido subido por el usuario en Capistrano

He configurado capistrano para la implementación en serveres de producción y producción. Lo último que me preocupa es cómo manejar el contenido subido por el usuario, por el momento, mi carpeta de carga y su contenido están versionados en mi git repo. Lo que me gustaría hacer si es posible y no una mala práctica, es usar el script de deployment para hacer las implementaciones usuales, pero también para enviar cualquier contenido nuevo cargado en el server de prod al repository, agregando una tarea al script.

¿Es esto un movimiento sensato / posible? ¿Cómo manejan normalmente este tipo de cosas?

Deberías separar tu contenido de tu base de código.

Una estrategia es almacenar su contenido en el punto final de implementación (en el server, donde se buildá a lo largo del time a medida que se utiliza su aplicación) y tener un enlace simbólico de capistrano durante una implementación.

Digamos que tienes una carpeta llamada 'uploads' ubicada en '{rails_root} / public' – agregarías algo como esto a tu receta de implementación:

# Create a symlink to our 'uploads' folder namespace :deploy do task :symlink_uploads, :roles => :app do run "ln -s #{deploy_to}/shanetworking/uploads #{release_path}/public/uploads" end end after "deploy:update_code", "deploy:symlink_uploads"