Hi Keenan, Thanks for the suggestion!
Thomas. On Thu, Sep 3, 2009 at 8:59 PM, Keenan Brock <[email protected]> wrote: > > 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 -~----------~----~----~----~------~----~------~--~---
