0.0
No commit activity in last 3 years
No release in over 3 years
Manage multiple Heroku instances/apps for a single Rails app using Rake
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

>= 0
 Project Readme

Heroku San¶ ↑

Helpful rake tasks for Heroku.

Install¶ ↑

To install as a gem, add the following to config/environment.rb:

config.gem 'heroku_san'

Rake tasks are not automatically loaded from gems, so you’ll need to add the following to your Rakefile:

begin
  require 'heroku_san/tasks'
rescue LoadError
  STDERR.puts "Run `rake gems:install` to install heroku_san"
end

To install as a plugin:

script/plugin install git://github.com/fastestforward/heroku_san.git

Configure¶ ↑

In config/heroku.yml you will need add the Heroku apps that you would like to attach to this project. Here is an example of an app called ‘awesomeapp’ with three Heroku apps attached.

apps:
  # shorthand: heroku app
  production: awesomeapp
  staging: awesomeapp-staging
  demo: awesomeapp-demo

If this is a fresh project, heroku_san can create all the applications for you, and set the RACK_ENV.

rake all heroku:create heroku:rack_env

Usage¶ ↑

After configuring your Heroku apps you can use rake tasks to control the apps.

rake production deploy

A rake task with the shorthand name of each app is now available and adds that server to the list that subsequent commands will execute on. Because this list is additive, you can easily select which servers to run a command on.

rake demo staging restart

A special rake task ‘all’ is created that causes any further commands to execute on all heroku apps.

Manipulate collaborators on all this project’s apps (prompts for email address):

rake all heroku:share
rake all heroku:unshare

Need to add remotes for each app?

rake all heroku:remotes

A full list of tasks provided:

rake all                   # Select all Heroku apps for later command
rake console               # Opens a remote console
rake deploy                # Deploys, migrates and restarts latest code.
rake capture               # Captures a bundle on Heroku
rake heroku:apps           # Lists configured apps
rake heroku:create         # Creates the Heroku app
rake heroku:create_config  # Creates an example configuration file
rake heroku:gems           # Generate the Heroku gems manifest from gem dependencies
rake heroku:remotes        # Add git remotes for all apps in this project
rake heroku:rack_env       # Add proper RACK_ENV to each application
rake heroku:share          # Adds a collaborator
rake heroku:unshare        # Removes a collaborator
rake migrate               # Migrates and restarts remote servers
rake restart               # Restarts remote servers

Frequently used tasks are not namespaced, everything else lives under heroku.

Homepage

github.com/fastestforward/heroku_san

Bug Tracker

heroku_san.lighthouseapp.com/projects/56301-heroku_san/tickets

Contributors¶ ↑

Elijah Miller (elijah.miller@gmail.com) Glenn Roberts (glenn.roberts@siyelo.com)

License¶ ↑

License

Copyright © 2009 Elijah Miller <elijah.miller@gmail.com>, released under the MIT license.