Capistrano Tasks for dumping and transfering production databases
GPL-3.0 License
= CAP DB DUMP
Capistrano recipes for backing your production database and transferring it to your local machine.
== INSTALLATION
gem 'cap_db_dump'
$ bundle install
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
Copyright (c) 2008-2022 Scott Taylor / Eastmedia [email protected]
Released under the MIT + GPL licenses