Hi Thomas, For passenger, there is a way to say if a file is present, then display a maintenance page. (using mod rewrite) This got me thinking.
Heroku has environmental variables. So why not use an environmental variable to trigger a maintenance page? Maybe you can add a maintenance page to your site. e.g.: setup the blocker: config/routes.rb: (below Routes.draw but above the other entries) if ENV['MAINTAIN']=='true' map.maintain '*path', :controller => 'application', :action => 'show500' end -or- application_controller.rb if ENV['MAINTAIN']=='true' before_filter :show500 end and setup the renderer: app/controllers/application_controller.rb def show500 render :file => 'shared/maintain', :status => 500 false end To turn it on: heroku config:add MAINTAIN true The site will say "we'll be back soon" rake db:migrate other stuff heroku config:remove MAINTAIN Hope this meets your needs. I'll throw together a plugin when I get the chance. But long weekend suggests I'll have other things on my plate. --Keenan On Sep 1, 2009, at 2:25 PM, geolev wrote: > > I think this would be great. Does anyone know how to do this? > > On Aug 28, 2:52 am, Thomas Balthazar <[email protected]> wrote: >> Hello, >> >> I'd like to know what would be the best way to put an application >> into >> maintenance state. >> >> I want to deploy a major update (code + db structure + data >> migration) >> on a Production app, and I'd like to be sure that users don't use the >> app while I'm deploying and testing. >> >> As far as I know, as soon as I run 'git push heroku', the app is >> deployed and the users are able to access it. >> The problem is that I haven't run 'heroku rake db:migrate' yet, so >> the >> app that is online right now doesn't work. >> Also, once I've run 'heroku rake db:migrate', I'd like to be able to >> test the app to be really sure everything is ok. >> But the users are already using the app and if I made a mistake and I >> want to rollback, I can't, since users are already using the new DB >> structure. >> >> I know I have to test the app so it doesn't happen, I also have a >> Staging app to test everything, but, you know, sometimes things still >> go wrong. >> >> So, what would be the best approach to achieve an application >> 'maintenance' state? >> >> Thanks for your suggestions. >> >> Best, >> Thomas. > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Heroku" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/heroku?hl=en -~----------~----~----~----~------~----~------~--~---
