pg_s3_dumper 0.1.4 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/pg_s3_dumper/backup.rb +16 -0
- data/lib/pg_s3_dumper/dumper.rb +18 -6
- data/lib/pg_s3_dumper/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9a837802c2f2d926d2673ad6ff09f3e803bb141a
|
4
|
+
data.tar.gz: f0bccfbce6115d8834755ece91f40af1148a87d6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2adb27f14f6861fc1f182ac28da7a1c85bc2a7964bf1bd5943da93ea7ae8bd2ca2889a1a0e5daa7369df01a5127da16ab600fcc6ca8aef701cdcf1d72d5e8963
|
7
|
+
data.tar.gz: d157714a3d23441a2622b825c2c0171a89bc4d69869ff3a3be91e738660a3aa48d02bfbcee30744344f8992e73a0c64f9f87e5a667b7dc3fffb97956055f8d25
|
data/lib/pg_s3_dumper/backup.rb
CHANGED
@@ -26,10 +26,26 @@ class Backup
|
|
26
26
|
ts.strftime('%F') == date.strftime('%F')
|
27
27
|
end
|
28
28
|
|
29
|
+
def on_week?(date)
|
30
|
+
ts.strftime('%Y-%U') == date.strftime('%Y-%U')
|
31
|
+
end
|
32
|
+
|
33
|
+
def on_month?(date)
|
34
|
+
ts.strftime('%Y-%m') == date.strftime('%Y-%m')
|
35
|
+
end
|
36
|
+
|
29
37
|
def keep_on_day(date)
|
30
38
|
@keep = true if on_day?(date)
|
31
39
|
end
|
32
40
|
|
41
|
+
def keep_on_week(date)
|
42
|
+
@keep = true if on_week?(date)
|
43
|
+
end
|
44
|
+
|
45
|
+
def keep_on_month(date)
|
46
|
+
@keep = true if on_month?(date)
|
47
|
+
end
|
48
|
+
|
33
49
|
def prune
|
34
50
|
if keep
|
35
51
|
puts "Keeping backup: #{self}"
|
data/lib/pg_s3_dumper/dumper.rb
CHANGED
@@ -77,12 +77,7 @@ module PgS3Dumper
|
|
77
77
|
# Keep daily backups for one week
|
78
78
|
# Keep weekly backups for one month
|
79
79
|
# Keep monthly backups for one year
|
80
|
-
days
|
81
|
-
7.times.map{|i| i.days.ago} +
|
82
|
-
4.times.map{|i| i.weeks.ago} +
|
83
|
-
12.times.map{|i| i.months.ago}
|
84
|
-
|
85
|
-
days.each do |ts|
|
80
|
+
7.times.map{|i| i.days.ago}.each do |ts|
|
86
81
|
backups.each do |b|
|
87
82
|
b.keep_on_day(ts)
|
88
83
|
# We kept one backup on day ts, go to next day
|
@@ -90,6 +85,23 @@ module PgS3Dumper
|
|
90
85
|
end
|
91
86
|
end
|
92
87
|
|
88
|
+
4.times.map{|i| i.weeks.ago}.each do |ts|
|
89
|
+
backups.each do |b|
|
90
|
+
b.keep_on_week(ts)
|
91
|
+
# We kept one backup on day ts, go to next day
|
92
|
+
break if b.keep
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
12.times.map{|i| i.months.ago}.each do |ts|
|
97
|
+
backups.each do |b|
|
98
|
+
b.keep_on_month(ts)
|
99
|
+
# We kept one backup on day ts, go to next day
|
100
|
+
break if b.keep
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
|
93
105
|
# Keep all backups for today
|
94
106
|
backups.each do |b|
|
95
107
|
b.keep_on_day(Date.today)
|
data/lib/pg_s3_dumper/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pg_s3_dumper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nicolas Goy
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-10-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk
|
@@ -109,7 +109,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
109
109
|
version: '0'
|
110
110
|
requirements: []
|
111
111
|
rubyforge_project:
|
112
|
-
rubygems_version: 2.4.5
|
112
|
+
rubygems_version: 2.4.5.1
|
113
113
|
signing_key:
|
114
114
|
specification_version: 4
|
115
115
|
summary: Simple tool to dump postgresql database to an S3 bucket.
|