effective_developer 0.6.10 → 0.6.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +6 -0
- data/lib/effective_developer/version.rb +1 -1
- data/lib/tasks/pg_pull.rake +9 -5
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 844b526090ef245bc157e80ba4d3a5e7af98e6e9cb5df20c6b0f18404f34be44
|
4
|
+
data.tar.gz: b5e9934fceb5b1648efa59ed87fadadd1e19e19b5f350ac04e53631e1542e7e4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a99fa228a455346d6d3079eda6ec2138a1e1dcb10023dd851740a1af68e97971393a0f5cff7a78f7c7dee745f3277543c10a71161de0d9c9c1b8e7df731b5f68
|
7
|
+
data.tar.gz: cb1cd2a3ecaf14d8c1e63cb59cb7cb71752df6ed010fb0b745606c3c6eb86341af888ebaff4730ffc434816c4f5b66c1e584db719affff0f5119e2bd2f96a865
|
data/README.md
CHANGED
@@ -238,6 +238,12 @@ rake pg:pull
|
|
238
238
|
rake pg:pull[staging]
|
239
239
|
```
|
240
240
|
|
241
|
+
By default, any data in the `logs` table will be excluded. To include the logs data:
|
242
|
+
|
243
|
+
```ruby
|
244
|
+
rake pg:pull logs=true
|
245
|
+
```
|
246
|
+
|
241
247
|
## pg:load
|
242
248
|
|
243
249
|
Drops and re-creates the local database then initializes database with the contents of latest.dump
|
data/lib/tasks/pg_pull.rake
CHANGED
@@ -8,12 +8,14 @@ namespace :pg do
|
|
8
8
|
# bundle exec rake pg:pull
|
9
9
|
# bundle exec rake pg:pull[staging]
|
10
10
|
# bundle exec rake pg:pull[158.204.33.124]
|
11
|
+
# bundle exec rake pg:pull logs=true
|
11
12
|
# bundle exec rake pg:pull filename=latest.dump database=example
|
13
|
+
# bundle exec rake pg:pull filename=latest.dump database=example logs=true
|
12
14
|
# DATABASE=example bundle exec rake pg:load
|
13
15
|
desc 'Creates a new backup on remote server and downloads it to latest.dump'
|
14
16
|
task :pull, [:remote] => :environment do |t, args|
|
15
17
|
defaults = { database: nil, filename: (ENV['DATABASE'] || 'latest') + '.dump' }
|
16
|
-
env_keys = { database: ENV['DATABASE'], filename: ENV['FILENAME'] }
|
18
|
+
env_keys = { database: ENV['DATABASE'], filename: ENV['FILENAME'], logs: ENV['LOGS'] }
|
17
19
|
keywords = ARGV.map { |a| a.split('=') if a.include?('=') }.compact.inject({}) { |h, (k, v)| h[k.to_sym] = v; h }
|
18
20
|
args.with_defaults(defaults.compact.merge(env_keys.compact).merge(keywords))
|
19
21
|
|
@@ -62,7 +64,7 @@ namespace :pg do
|
|
62
64
|
# SSH into hatchbox and call rake pg:save there to create latest.dump
|
63
65
|
unless(result = `ssh -T #{args.user}@#{args.remote} << EOF
|
64
66
|
cd ~/#{args.app}/current/
|
65
|
-
bundle exec rake pg:save database=#{args.database} filename=#{args.filename}
|
67
|
+
bundle exec rake pg:save database=#{args.database} filename=#{args.filename} logs=#{args.logs}
|
66
68
|
`).include?('Saving database completed') # The output of pg:save down below
|
67
69
|
puts("Error calling ssh #{args.user}@#{args.remote} and running rake pg:save on hatchbox from ~/#{args.app}/current/")
|
68
70
|
abort(result)
|
@@ -140,7 +142,7 @@ namespace :pg do
|
|
140
142
|
desc 'Saves the development database to a postgresql .dump file (latest.dump by default)'
|
141
143
|
task :save, [:filename] => :environment do |t, args|
|
142
144
|
defaults = { database: nil, filename: (ENV['DATABASE'] || 'latest') + '.dump' }
|
143
|
-
env_keys = { database: ENV['DATABASE'], filename: ENV['FILENAME'] }
|
145
|
+
env_keys = { database: ENV['DATABASE'], filename: ENV['FILENAME'], logs: ENV['LOGS'] }
|
144
146
|
keywords = ARGV.map { |a| a.split('=') if a.include?('=') }.compact.inject({}) { |h, (k, v)| h[k.to_sym] = v; h }
|
145
147
|
args.with_defaults(defaults.compact.merge(env_keys.compact).merge(keywords))
|
146
148
|
|
@@ -172,14 +174,16 @@ namespace :pg do
|
|
172
174
|
config = config.configuration_hash if config.respond_to?(:configuration_hash)
|
173
175
|
config = config.stringify_keys
|
174
176
|
|
175
|
-
{ username: (config['username'] || `whoami`.chomp), password: config['password'], host: config['host'], port: (config['port'] || 5432), database: config['database'] }
|
177
|
+
{ username: (config['username'] || `whoami`.chomp), password: config['password'], host: config['host'], port: (config['port'] || 5432), database: config['database'].to_s.sub('/', '') }
|
176
178
|
end
|
177
179
|
|
178
180
|
db.transform_values! { |v| v.respond_to?(:chomp) ? v.chomp : v }
|
179
181
|
|
180
182
|
puts "=== Saving local '#{db[:database]}' database to #{args.filename}"
|
181
183
|
|
182
|
-
|
184
|
+
exclude_table_data = "--exclude-table-data=logs" unless (args.logs == 'true')
|
185
|
+
|
186
|
+
if system("export PGPASSWORD=#{db[:password]}; pg_dump -Fc --no-acl --no-owner #{exclude_table_data} -h #{db[:host]} -p #{db[:port]} -U #{db[:username]} #{db[:database]} > #{args.filename}")
|
183
187
|
puts "Saving database completed"
|
184
188
|
else
|
185
189
|
abort "Error saving database"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: effective_developer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Code and Effect
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-10-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|