/cap_db_dump

Capistrano Tasks for dumping and transfering production databases

Primary LanguageRubyGNU General Public License v3.0GPL-3.0

CAP DB DUMP

Capistrano recipes for backing your production database and transferring it to your local machine.

INSTALLATION

  1. Install the gem in bundler’s Gemfile:

gem 'cap_db_dump'

$ bundle install
  1. Require the gem in the cap file:

require 'cap_db_dump/recipes'

Finally, add the :db_dump => true flag on the server where you’d like the mysqldump to run:

task :staging do
  role :web,                  'example.com'
  role :app,                  'example.com'
  role :db,                   'example.com', :primary => true, :db_dump => true
end

Make sure ‘rails_env` and `database_engine` variables are set

set :rails_env, "production"
set :database_engine, :mysql # specify :mysql | :psql

You also might want to add these to your .gitignore:

“‘ current.sql.gz dump_.sql.gz “`

USAGE

Create a dump:

cap database:dump

Create a dump, and transfer it with scp:

cap database:dump_and_transfer

Only dump the schema for a given set of tables (don’t dump the data):

set :schema_only_tables, [:sessions, :my_large_table]

Restore script

Restore script is not included, but you may want to do something like this (postgres example):

#!/usr/bin/env bash

set -x

createdb my_app_development

set -e

gunzip -c current.sql.gz -k | pg_restore --verbose --clean --no-acl --no-owner -h localhost -d my_app_development

Contributors:

Conor Hunt (conorh)
Stephen Schor (nodanaonlyzuul)

Copyright © 2008-2022 Scott Taylor / Eastmedia <scott@eastmedia.com>

Released under the MIT + GPL licenses