pg_backup 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/README.md +12 -5
- data/lib/pg_backup/helpers/database.rb +20 -0
- data/lib/pg_backup/tasks/dump.rake +6 -10
- data/lib/pg_backup/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8413fa19c76ce5651b2db1d6ad5a2e9b556e3e1e
|
4
|
+
data.tar.gz: 74f811f636be76248699ac8d164c7fc4eb2cd1d9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e514eb5aebbeb3082ad1bb3533943ae13643a428be6f71e1aea18c58929f52b2ba2f5a3ab52476a65dd16fdc135050ad4888dcd7c40a09225a2a7e7c47aaf626
|
7
|
+
data.tar.gz: 14f8a49fd277909205e4dcce3f7ff7bd122fbaf10f453e384cec619a8c5af5def9c5192429cf589c49dd3ea0059f5b2093a46a6b0b4810169fcd86a42191b165
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
# PgBackup
|
2
2
|
|
3
|
-
|
3
|
+
[](http://badge.fury.io/rb/pg_backup)
|
4
|
+
|
5
|
+
This gem adds rake tasks to your rails application for creating and restoring postgres dumps. The dumps are created with ```pg_dump``` and restored with ```pg_restore``` - these tools are included in a full postgres installation, but also available as standalone binaries (needed if your db is not located in the application server).
|
4
6
|
|
5
7
|
## Requirements
|
6
8
|
```
|
@@ -24,7 +26,7 @@ And then execute:
|
|
24
26
|
|
25
27
|
```
|
26
28
|
rake pg_backup:dump:create # create a dump from local db and save it locally
|
27
|
-
rake pg_backup:dump:load # import latest dump from local file
|
29
|
+
rake pg_backup:dump:load # import latest dump from local file into local db
|
28
30
|
```
|
29
31
|
|
30
32
|
### Capistrano integration
|
@@ -36,10 +38,10 @@ require "pg_backup/integration/capistrano"
|
|
36
38
|
````
|
37
39
|
this adds some capistrano tasks
|
38
40
|
```
|
39
|
-
cap <env> pg_backup:dump:create # creates remote dump in remote dir
|
40
|
-
cap <env> pg_backup:dump:load # imports latest remote dump
|
41
|
+
cap <env> pg_backup:dump:create # creates remote dump (from remote db) in remote dir
|
42
|
+
cap <env> pg_backup:dump:load # imports latest remote dump into remote db
|
41
43
|
cap <env> pg_backup:dump:download # downloads latest remote dump to local dir
|
42
|
-
cap <env> pg_backup:dump:upload # uploads to remote
|
44
|
+
cap <env> pg_backup:dump:upload # uploads latest local dump to remote dir
|
43
45
|
```
|
44
46
|
|
45
47
|
### deploy-mate integration
|
@@ -51,6 +53,11 @@ add to your ```Capfile```
|
|
51
53
|
require "pg_backup/integration/deploy_mate"
|
52
54
|
```
|
53
55
|
|
56
|
+
## ToDo
|
57
|
+
- allow change of dump dir (local and remote)
|
58
|
+
- tests? https://github.com/technicalpickles/capistrano-spec
|
59
|
+
- rotate local and remote dumps (keep last x dumps)
|
60
|
+
|
54
61
|
## Credits
|
55
62
|
https://gist.github.com/hopsoft/56ba6f55fe48ad7f8b90
|
56
63
|
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module PgBackup
|
2
|
+
module Helpers
|
3
|
+
module Database
|
4
|
+
|
5
|
+
def with_database_config
|
6
|
+
yield(
|
7
|
+
connection_config.fetch(:host, 'localhost'),
|
8
|
+
connection_config.fetch(:database),
|
9
|
+
connection_config.fetch(:username),
|
10
|
+
connection_config.fetch(:password)
|
11
|
+
)
|
12
|
+
end
|
13
|
+
|
14
|
+
def connection_config
|
15
|
+
ActiveRecord::Base.connection_config
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -1,3 +1,6 @@
|
|
1
|
+
require "pg_backup/helpers/database"
|
2
|
+
include PgBackup::Helpers::Database
|
3
|
+
|
1
4
|
namespace :pg_backup do
|
2
5
|
namespace :dump do
|
3
6
|
|
@@ -6,7 +9,7 @@ namespace :pg_backup do
|
|
6
9
|
file_name = Dir.glob("#{Rails.root}/dump/*.backup").sort.last
|
7
10
|
fail "Can't find a dump file!" unless file_name
|
8
11
|
puts "Loading dump file from #{file_name}..."
|
9
|
-
|
12
|
+
with_database_config do |host, db, user, pw|
|
10
13
|
%x{ PGPASSWORD=#{pw} pg_restore --host #{host} --username #{user} --schema public --no-owner --no-acl --clean --dbname #{db} #{file_name} }
|
11
14
|
end
|
12
15
|
puts "Done."
|
@@ -16,8 +19,8 @@ namespace :pg_backup do
|
|
16
19
|
task create: :environment do
|
17
20
|
puts "Creating dump file..."
|
18
21
|
FileUtils.mkdir_p Rails.root.join("dump")
|
19
|
-
file_name = Rails.root.join("dump", "
|
20
|
-
|
22
|
+
file_name = Rails.root.join("dump", "dump-#{Time.now.to_i}.backup")
|
23
|
+
with_database_config do |host, db, user, pw|
|
21
24
|
%x{ PGPASSWORD=#{pw} pg_dump --host #{host} --username #{user} --clean --format=c --no-owner --no-acl #{db} > #{file_name} }
|
22
25
|
end
|
23
26
|
puts "Dump file located at #{file_name}."
|
@@ -27,10 +30,3 @@ namespace :pg_backup do
|
|
27
30
|
end
|
28
31
|
end
|
29
32
|
|
30
|
-
def with_config
|
31
|
-
yield connection_config.fetch(:host, 'localhost'), connection_config.fetch(:database), connection_config.fetch(:username), connection_config.fetch(:password)
|
32
|
-
end
|
33
|
-
|
34
|
-
def connection_config
|
35
|
-
ActiveRecord::Base.connection_config
|
36
|
-
end
|
data/lib/pg_backup/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pg_backup
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marcus Geissler
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-10-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -66,6 +66,7 @@ files:
|
|
66
66
|
- README.md
|
67
67
|
- Rakefile
|
68
68
|
- lib/pg_backup.rb
|
69
|
+
- lib/pg_backup/helpers/database.rb
|
69
70
|
- lib/pg_backup/integration/capistrano.rb
|
70
71
|
- lib/pg_backup/integration/deploy_mate.rb
|
71
72
|
- lib/pg_backup/railtie.rb
|
@@ -94,7 +95,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
94
95
|
version: '0'
|
95
96
|
requirements: []
|
96
97
|
rubyforge_project:
|
97
|
-
rubygems_version: 2.
|
98
|
+
rubygems_version: 2.2.2
|
98
99
|
signing_key:
|
99
100
|
specification_version: 4
|
100
101
|
summary: Create, restore, download and upload postgres dumps locally and on remote
|