Administro una docena de aplicaciones de Rails que usan Capistrano y Passenger.
Me di cuenta de que cuando implemento una actualización en una aplicación de Rails 5, los usuarios se desconectan, es decir, la sesión se pierde. Las aplicaciones que usan Rails 4 o anterior no lo hacen, los usuarios permanecen conectados; el manejo de la sesión es todas las cookies en todos los casos (predeterminado).
¿Esto está relacionado con diferentes versiones de Rails o Passenger? Alguna idea para solucionarlo ?
Aquí está la pieza de deployment.rb:
namespace :deploy do desc 'Restart application' task :restart do on roles(:app), in: :sequence, wait: 5 do execute :mkdir, '-p', "#{release_path}/tmp" execute :touch, release_path.join('tmp/restart.txt') end end after :publishing, :restart endy estoy usando
* capistrano (3.13.0) * capistrano-bundler (1.6.0) * capistrano-rails (1.1.8) * capistrano-rails-console (2.3.0) * capistrano-rvm (0.1.2) Para implementar: cap production deploy
Gracias de antemano por tu ayuda. Patricio
Creo que mi problema se debió a un cambio en Rails 5.2, la introducción de master.key y credentials.yml.enc para tomar el relevo de secrets.yml
Debido a que la aplicación Rails 5 que creé usaba 5.2, el generador ya no creaba un archivo secrets.yml , pero tampoco la configuración master.key estaba habilitada:
# config.require_master_key = trueSupongo que, como resultado de esto, Rails usó alguna clave transitoria para firmar las cookies, que cambió cada vez que se reiniciaba el servidor.
Ahora he vuelto a agregar config/secrets.yml a mi proyecto y, según mis pruebas, parece que el problema ha desaparecido.