ScalingoDatabasesRakeTasks
A gem providing rake tasks such as backup and restore for database manipulations on Scalingo.
Currently supported databases:
- MongoDB
- MySQL
- PostgreSQL
Available tasks for each database:
backup_local: make a backup of local databasebackup_remote: make a backup of remote Scalingo databaserestore_local: restore a local database with an archiverestore_remote: restore a remote Scalingo database with an archive
Usage
For remote operations you will have to set your shell's environment variable APP as your app name on Scalingo. The variable DB_ENV_NAME is optional, by default it will be the one generated when you provisionned the database addon. For example, if your database is a MongoDB then the variable will be SCALINGO_MONGO_URL.
Available Env Vars
Global:
APP: Scalingo app name (mandatory)DB_ENV_NAME: Scalingo database connection var name, e.g.SCALINGO_MONGO_URL(optional)SSH_IDENTITY: specify a SSH identity file, e.g.~/.ssh/id_rsa(optional)
MongoDB:
FILE: your database config file name, e.g.database(optional)
PostgreSQL:
PG_DUMP_CMD: specify the path or command name of the tool to use, default:pg_dump(optional)PG_RESTORE_CMD:specify the path or command name of the tool to use, default:pg_restore(optional)
Commands
To see the complete list of tasks: rake -T scalingo
Example of commands for MongoDB:
rake scalingo:mongodb:backup_localrake scalingo:mongodb:backup_remoterake scalingo:mongodb:restore_localrake scalingo:mongodb:restore_remote
Backup and Restore
Backups are stored under the tmp folder of your project, the database type is part of the archive name (e.g. scalingo_mongodb_dump.tar.gz).
To restore from a specific archive, you'll have to give it the default archive name and put it inside of tmp folder before running the rake command.
SSH Identity
If you are not using a SSH agent and your default SSH identity file is not id_rsa you can specify your custom identity file path with the SSH_IDENTITY variable.
Installation
Add this line to your application's Gemfile:
gem 'scalingo_databases_rake_tasks'
And then execute:
$ bundle
Or install it yourself as:
$ gem install scalingo_databases_rake_tasks
For Rails apps nothing to do.
For other apps, add require "scalingo_databases_rake_tasks" to your Rakefile.
Development
After checking out the repo, run bin/setup to install dependencies. You can also run bin/console for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/Scalingo/scalingo_databases_rake_tasks-gem.