No release in over 3 years
Low commit activity in last 3 years
Simple solution to make encrypted with ccrypt PostgreSQL backups with storing on Google Drive API
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
 Dependencies

Development

~> 1.14
~> 9.1.0
~> 12.0
~> 3.6
~> 0.50.0

Runtime

 Project Readme

PgDriveBackup

Simple solution to make encrypted with ccrypt PostgreSQL backups and storing on Google Drive API

Installation

Add this line to your application's Gemfile:

gem 'pg_drive_backup'

And then execute:

$ bundle

Or install it yourself as:

$ gem install pg_drive_backup

Usage

Quick start

Required database config credentials:

config/initializers/pg_drive_backup.rb

PgDriveBackup::Settings.configure do |config|
  config.database.name = 'database_name'
  config.database.user = ENV.fetch('PG_USERNAME')
  config.database.password = ENV.fetch('PG_PASSWORD')
end

Add your google drive authorization JSON file to config/drive.json

Generate your encryption key, for example:

openssl passwd -1 "somepassword"

And put it into config/key.txt

Run it:

PgDriveBackup::Run.call

It uploads your encrypted backup with name like 20171009083306693-dump.sql.cpt

To decrypt:

ccrypt -k config/key.txt -d 20171009083306693-dump.sql.cpt

Tunning

Config options:

PgDriveBackup::Settings.configure do |config|
  config.credentials_path = 'config/drive.json'       # default: 'config/drive.json'
  config.key_path = 'config/key.txt'                  # default: 'config/key.txt'
  config.prefix = '-dump'                             # default: '-dump'

  config.database.name = 'database_name'              # default: nil
  config.database.user = ENV.fetch('PG_USERNAME')     # default: nil
  config.database.password = ENV.fetch('PG_PASSWORD') # default: nil
  config.database.host = 'localhost'                  # default: 'localhost'
end

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/kirillshevch/pg_drive_backup.

License

The gem is available as open source under the terms of the MIT License.