naifa 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b7dd8770b81f31bf68ccefd8075c47684e96e673
4
- data.tar.gz: 83d07884667956748f511303493df74252d1f69b
3
+ metadata.gz: c623b56e8b1b23e3ca479d9e0e08cae05bd4cab6
4
+ data.tar.gz: 573aefda165ae23988186c683ba09572b044953f
5
5
  SHA512:
6
- metadata.gz: 16f3c9bbbde9428b2687903b42652d49ce459999d3b33718787292446c0dd939f7b0fa84988bf164731313b6a43d4c5086e83e3ba28154385ee612b6dcabf363
7
- data.tar.gz: 796136b7e1980256f88b147e0b92acd52e09b796a988c35690d8efd059f66a9c5db2085eca5ed6fcd5e2e14197534c94b1cf06ceb701c5379b8c1f0e9c640272
6
+ metadata.gz: 2cec7af63cf9322d8159186d367ff754fd3244b6f4b14705c580e591d4b954a5f20c27ff21a66432607e10c7421874bad9c37013fc5992b402629f45476db4e7
7
+ data.tar.gz: 3cf47b6f7471e72ee749213ed9d9ec280821c123eaf7825519fe4e0528423b40302f70ae5d7c442e9aa09c68d8c54dc959f81cb9acfc17ec85fd487ad8657460
@@ -1,3 +1,32 @@
1
- ## 0.1.0, unreleased
1
+ ## 0.2.0
2
+ * Adds support for postgres command options in the naifa file
3
+ * NOTE: If you use the postgres plugin, please update you .naifa file to add the default backup_options and restore_options. Ex of adding those to the a development environment setting:
4
+ ```
5
+ ...
6
+ db:
7
+ plugin: postgres
8
+ settings:
9
+ ...
10
+ environments:
11
+ ...
12
+ development:
13
+ backup_options:
14
+ - "-Fc"
15
+ restore_options:
16
+ - "--verbose"
17
+ - "--clean"
18
+ - "--no-acl"
19
+ - "--no-owner"
20
+ ...
21
+ ```
22
+
23
+ ## 0.1.1
24
+ * Adds S3 bucket sync support
25
+ * Restructure configuration and the CLI
26
+ * Removes defaults. Settings must come from the configuration file
27
+ * Fixes some postgres plugin bugs
28
+ * Adds some validations and error messages
29
+
30
+ ## 0.1.0
2
31
  * First version!
3
32
  * Adds postgresql sync between environment database, backup and restore
data/README.md CHANGED
@@ -56,6 +56,13 @@ db:
56
56
  database: ''
57
57
  username: "\\$POSTGRES_USER"
58
58
  path: "/db_dumps/"
59
+ backup_options:
60
+ - "-Fc"
61
+ restore_options:
62
+ - "--verbose"
63
+ - "--clean"
64
+ - "--no-acl"
65
+ - "--no-owner"
59
66
  backup:
60
67
  environment: :staging
61
68
  restore:
@@ -158,6 +165,13 @@ db:
158
165
  database: ''
159
166
  username: "\\$POSTGRES_USER"
160
167
  path: "/db_dumps/"
168
+ backup_options:
169
+ - "-Fc"
170
+ restore_options:
171
+ - "--verbose"
172
+ - "--clean"
173
+ - "--no-acl"
174
+ - "--no-owner"
161
175
  backup:
162
176
  environment: :staging
163
177
  restore:
@@ -180,6 +194,13 @@ db_local:
180
194
  username: "\\$POSTGRES_USER"
181
195
  password: pass
182
196
  path: "/db_dumps/"
197
+ backup_options:
198
+ - "-Fc"
199
+ restore_options:
200
+ - "--verbose"
201
+ - "--clean"
202
+ - "--no-acl"
203
+ - "--no-owner"
183
204
  backup:
184
205
  environment: :staging
185
206
  restore:
@@ -80,7 +80,8 @@ module Naifa
80
80
  File.join(
81
81
  environment_settings[:path].presence || options[:path].presence,
82
82
  filename
83
- )
83
+ ),
84
+ environment_settings[:backup_options]
84
85
  )
85
86
  Kernel.system(command_line)
86
87
  when :local
@@ -98,7 +99,8 @@ module Naifa
98
99
  File.join(
99
100
  environment_settings[:path].presence || options[:path].presence,
100
101
  filename
101
- )
102
+ ),
103
+ environment_settings[:backup_options]
102
104
  )
103
105
  Kernel.system(command_line)
104
106
  when :heroku
@@ -129,7 +131,8 @@ module Naifa
129
131
  File.join(
130
132
  environment_settings[:path].presence || options[:path].presence,
131
133
  filename
132
- )
134
+ ),
135
+ environment_settings[:backup_options]
133
136
  )
134
137
  Utils.docker_compose_exec_command(
135
138
  environment_settings[:app_name].presence,
@@ -173,7 +176,8 @@ module Naifa
173
176
  File.join(
174
177
  environment_settings[:path].presence || options[:path].presence,
175
178
  filename
176
- )
179
+ ),
180
+ environment_settings[:restore_options]
177
181
  )
178
182
  Kernel.system(command_line)
179
183
  when :local
@@ -191,7 +195,8 @@ module Naifa
191
195
  File.join(
192
196
  environment_settings[:path] || options[:path],
193
197
  filename
194
- )
198
+ ),
199
+ environment_settings[:restore_options]
195
200
  )
196
201
  Kernel.system(command_line)
197
202
  when :docker
@@ -210,7 +215,8 @@ module Naifa
210
215
  File.join(
211
216
  environment_settings[:path].presence || options[:path].presence,
212
217
  filename
213
- )
218
+ ),
219
+ environment_settings[:restore_options]
214
220
  )
215
221
  Utils.docker_compose_exec_command(
216
222
  environment_settings[:app_name],
@@ -223,14 +229,18 @@ module Naifa
223
229
 
224
230
  private_class_method :_restore
225
231
 
226
- def self.build_restore_command(host, username, database, filename)
227
- "pg_restore --verbose --clean --no-acl --no-owner -h #{host} -U #{username} -d #{database} #{filename}"
232
+ def self.build_restore_command(host, username, database, filename, options={})
233
+ command = "pg_restore"
234
+ command << " #{options.join(' ')}" if options.present?
235
+ command << " -h #{host} -U #{username} -d #{database} #{filename}"
228
236
  end
229
237
 
230
238
  private_class_method :build_restore_command
231
239
 
232
- def self.build_backup_command(host, username, database, filename)
233
- "pg_dump -Fc -h #{host} -U #{username} -d #{database} > #{filename}"
240
+ def self.build_backup_command(host, username, database, filename, options={})
241
+ command = "pg_dump "
242
+ command << " #{options.join(' ')}" if options.present?
243
+ command << " -h #{host} -U #{username} -d #{database} > #{filename}"
234
244
  end
235
245
 
236
246
  private_class_method :build_backup_command
@@ -14,12 +14,29 @@ module Naifa
14
14
  type: :heroku,
15
15
  remote: 'staging'
16
16
  },
17
+ remote_example: {
18
+ type: :remote,
19
+ host: '',
20
+ database: '',
21
+ username: '',
22
+ backup_options: ['-Fc'],
23
+ restore_options: ['--verbose', '--clean', '--no-acl', '--no-owner']
24
+ },
25
+ local_example: {
26
+ type: :local,
27
+ database: '',
28
+ username: '',
29
+ backup_options: ['-Fc'],
30
+ restore_options: ['--verbose', '--clean', '--no-acl', '--no-owner']
31
+ },
17
32
  development: {
18
33
  type: :docker,
19
34
  app_name: 'db',
20
35
  database: '',
21
36
  username: '\$POSTGRES_USER',
22
- path: '/db_dumps/'
37
+ path: '/db_dumps/',
38
+ backup_options: ['-Fc'],
39
+ restore_options: ['--verbose', '--clean', '--no-acl', '--no-owner']
23
40
  }
24
41
  },
25
42
  backup: {
@@ -1,3 +1,3 @@
1
1
  module Naifa
2
- VERSION = "0.1.1"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: naifa
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Filipe Dias
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-03-16 00:00:00.000000000 Z
11
+ date: 2017-05-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -148,7 +148,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
148
148
  version: '0'
149
149
  requirements: []
150
150
  rubyforge_project:
151
- rubygems_version: 2.5.1
151
+ rubygems_version: 2.5.2
152
152
  signing_key:
153
153
  specification_version: 4
154
154
  summary: Naifa is a tool aimed at providing a collection of commands that simplify