Note: this plugin works only with Capistrano 3. Plase check the capistrano
gem version you're using before installing this gem:
$ bundle show | grep capistrano
Plugin for Capistrano 2 is here.
Capistrano PostgreSQL plugin abstracts and speeds up common administration tasks for PostgreSQL when deploying rails apps.
Here are the specific things this plugin does for your capistrano deployment process:
- creates a new PostgreSQL database and database user on the server
- generates and populates
database.yml
file on all release nodes (no need to ssh to the server and do this manually!) - zero-config
- support for multi-server setup: separate
db
andapp
nodes (from version 4.0)
Note: gem version 4 introduces some breaking changes. If you installed gem version 3 or below you might want to follow the upgrade instructions.
Put the following in your application's Gemfile
:
group :development do
gem 'capistrano', '~> 3.2.0'
gem 'capistrano-postgresql', '~> 4.8.0'
end
Then:
$ bundle install
If you're deploying a standard rails app, all you need to do is put
the following in Capfile
file:
require 'capistrano/postgresql'
- Make sure the
deploy_to
path exists and has the right privileges on the server (i.e./var/www/myapp
). Warning: The ~ symbol (i.e.~/myapp
) is not supported. - Within your app/config/deploy/{env}.rb files, you need to specify at least one :app and one :db server.
- It's also suggested to specify
:primary => true
on the end of your primary :db server line. - Optionally, you can run psql commands WITHOUT sudo if needed. Set the following (which defaults to false):
set :pg_without_sudo, true
Finally, to setup the server(s), run:
$ bundle exec cap production setup
Be sure to remove config/database.yml
from your application's version control.
How the plugin works wiki page contains a list of actions the plugin executes.
Read it only if you want to learn more about the plugin internals.
A full list of configuration options.
The list can be overwhelming so consult it only if you're looking for something specific.
Wiki page about the database.yml format.
Check out capistrano-plugins github org.
Contributions and improvements are very welcome.
If something is not working for you, or you find a bug please report it.
Here are other plugins and people this project was based upon:
- Matt Bridges - capistrano postgresql tasks from this plugin are heavily based on his capistrano-recipes repo.