Pregunta

Tengo un problema en el momento en que se están ejecutando un CMS dentro de un sitio (browsercms) que permite a los usuarios subir archivos. Sin embargo, cada vez que hacer un despliegue Capistrano se ejecuta un restablecimiento por lo tanto atacar con armas nucleares que hayan sido cargados archivos.

¿Alguien tiene alguna sugerencia en cuanto a cómo prevenir el restablecimiento completo, y sólo hacer un tirón, o una manera de mover los archivos cargados en otro lugar, sin tener que cambiar el código de la aplicación?

¿Fue útil?

Solución

Esto podría no ser el enfoque correcto.

Debe incluir la carpeta 'imágenes' en su .gitignore y enlazar simbólicamente la carpeta $ / current_release imágenes para compartir $ / imágenes.

Esto puede hacerse automáticamente en cada despliegue, si usted pone en su deploy.rb:

task :link_imgs do     
  run "ln -s #{shared_path}/photos #{release_path}/photos" 
end    

after "deploy:update_code", :link_imgs

He hecho lo mismo con mi CMS y funciona como un encanto

Otros consejos

Esto no satisface los criterios de "sin tener que cambiar el código de la aplicación".

Sin embargo después de funcionar en un problema similar cambié mi imagen cargada de /public/images a /public/system/images la /public/system directorio no está 'versiona' en cada lance Capistrano por lo que las imágenes sobrevivir.

¿Podría ser el Capistrano 'versiones' que causa el problema (en lugar de un git reset)

tapa de desplegar Distribuir: update y Distribuir: reinicio

Distribuir: update hace que el control de versiones, la copia de material

Distribuir: reinicio hace el verdadero reinicio, sobrecargue a su convenince, por lo general en su config / deploy.rb archivo

namespace :deploy do
    desc "Softly restart the server"
    task :restart, :roles => :app, :except => { :no_release => true } do
      my_own.restart_recipe
    end  
end
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top