clone_remote_db 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/bin/clone_remote_db +9 -3
- data/clone_remote_db.gemspec +2 -0
- data/lib/clone_remote_db/loader.rb +8 -6
- data/lib/clone_remote_db/version.rb +1 -1
- metadata +38 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7bd2ff0fa7e22c69b5649170bd2d66b30ffefdd3
|
4
|
+
data.tar.gz: aa38915a48d27f3ac23d1b3622482353d4f4c832
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eda295fe00556e2f497b209f2aa4681818ff775cb40182ab6b569111a016dc441894aa7e8fd915017b241c89c28c370087617cfcd3c1e3365b147a7ec80487c4
|
7
|
+
data.tar.gz: b47d9c51ca1a2586f21cdb6ff0e2b7a0ce90b2e2f49db07b6b5c6869ef83c91e44732505990812cb4da5905d5ec09ea3d35d6b61144eb6263ed19c08dc6c97ff
|
data/bin/clone_remote_db
CHANGED
@@ -48,12 +48,16 @@ if cmd
|
|
48
48
|
cmd_config = CONFIG['environments'][cmd]
|
49
49
|
if cmd_config
|
50
50
|
cmd_config = cmd_config.symbolize_keys
|
51
|
-
|
51
|
+
|
52
|
+
# do not merge parameters that were set from the command line
|
53
|
+
cmd_config_opts = cmd_config.select { |k,v| cli_opts[k].nil? }
|
54
|
+
loader.options.merge!(cmd_config_opts)
|
52
55
|
else
|
53
56
|
loader.die("unknown subcommand #{cmd}")
|
54
57
|
end
|
55
58
|
end
|
56
59
|
|
60
|
+
loader.load_defaults!
|
57
61
|
opts = loader.options
|
58
62
|
|
59
63
|
[:local_db, :remote_db, :host].each do |opt|
|
@@ -66,7 +70,7 @@ loader.die(:import_only, "file not found") if opts[:import_only] && !File.exist?
|
|
66
70
|
gzip_opts = opts[:gzip_opts]
|
67
71
|
|
68
72
|
# pg_dump exclude-table-data tables
|
69
|
-
pg_exclude_data = opts[:
|
73
|
+
pg_exclude_data = opts[:exclude_table_data]
|
70
74
|
|
71
75
|
db_name = opts[:remote_db]
|
72
76
|
local_dbname = opts[:local_db]
|
@@ -75,7 +79,9 @@ host = opts[:host]
|
|
75
79
|
# pg_dump setup
|
76
80
|
pg_user = opts[:remote_user]
|
77
81
|
pg_options = opts[:pg_dump_opts] << "-x #{escape_opts(db_name)}"
|
78
|
-
pg_options_joined =
|
82
|
+
pg_options_joined = \
|
83
|
+
(pg_exclude_data.is_a?(String) ? pg_exclude_data.split(',') : pg_exclude_data).
|
84
|
+
map { |t| '--exclude-table-data=' + escape_opts(t) }.
|
79
85
|
join(' ') + ' ' + pg_options.join(' ')
|
80
86
|
pg_dump_part = "pg_dump #{pg_options_joined}"
|
81
87
|
|
data/clone_remote_db.gemspec
CHANGED
@@ -16,6 +16,8 @@ class CloneRemoteDb::Loader
|
|
16
16
|
opt(opts, :host, "Host of the postgresql database", arg: 'HOST', short: '-h')
|
17
17
|
opt(opts, :import_only, "Skip download and provide path to dump.sql.gz file", arg: 'PATH')
|
18
18
|
opt(opts, :local_dest, "The path to save the dump.sql.gz file to", arg: 'PATH')
|
19
|
+
opt(opts, :remote_user, "Sudo as this user on the remote server", arg: 'USER')
|
20
|
+
opt(opts, :exclude_table_data, "Do not download data from these table(s). Separate multiple tables by comma.", arg: 'TABLE')
|
19
21
|
opt(opts, :dry_run, "Don't actually do anything", short: '-n')
|
20
22
|
end.parse!
|
21
23
|
options
|
@@ -54,23 +56,23 @@ EOS
|
|
54
56
|
arg << " #{arg_opts[:arg]}" if arg_opts[:arg]
|
55
57
|
on_args = [arg, msg]
|
56
58
|
on_args.unshift(arg_opts[:short]) if arg_opts[:short]
|
57
|
-
opts.on(*on_args
|
59
|
+
opts.on(*on_args) do |v|
|
58
60
|
options[key] = v
|
59
61
|
end
|
60
62
|
end
|
61
63
|
|
62
64
|
def options
|
63
|
-
@options ||= {}
|
65
|
+
@options ||= {}
|
64
66
|
end
|
65
67
|
|
66
|
-
def
|
67
|
-
{
|
68
|
+
def load_defaults!
|
69
|
+
@options = {
|
68
70
|
local_dest: '~/pg_dumps/{remote_db}/%Y-%m/%Y-%m-%d_%H.%M.sql.gz',
|
69
71
|
gzip_opts: %w(-9 --stdout),
|
70
72
|
pg_dump_opts: %w(-c -O),
|
71
|
-
|
73
|
+
exclude_table_data: %w(versions),
|
72
74
|
remote_user: 'postgres'
|
73
|
-
}
|
75
|
+
}.merge(options)
|
74
76
|
end
|
75
77
|
|
76
78
|
def replace_variables(str)
|
metadata
CHANGED
@@ -1,41 +1,69 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: clone_remote_db
|
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
|
- Josh McDade
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-02-
|
11
|
+
date: 2014-02-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.5'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.5'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: pry
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: debugger
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
39
67
|
- !ruby/object:Gem::Version
|
40
68
|
version: '0'
|
41
69
|
description:
|
@@ -46,7 +74,7 @@ executables:
|
|
46
74
|
extensions: []
|
47
75
|
extra_rdoc_files: []
|
48
76
|
files:
|
49
|
-
- .gitignore
|
77
|
+
- ".gitignore"
|
50
78
|
- Gemfile
|
51
79
|
- LICENSE.txt
|
52
80
|
- README.md
|
@@ -67,17 +95,17 @@ require_paths:
|
|
67
95
|
- lib
|
68
96
|
required_ruby_version: !ruby/object:Gem::Requirement
|
69
97
|
requirements:
|
70
|
-
- -
|
98
|
+
- - ">="
|
71
99
|
- !ruby/object:Gem::Version
|
72
100
|
version: '0'
|
73
101
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
74
102
|
requirements:
|
75
|
-
- -
|
103
|
+
- - ">="
|
76
104
|
- !ruby/object:Gem::Version
|
77
105
|
version: '0'
|
78
106
|
requirements: []
|
79
107
|
rubyforge_project:
|
80
|
-
rubygems_version: 2.0
|
108
|
+
rubygems_version: 2.2.0
|
81
109
|
signing_key:
|
82
110
|
specification_version: 4
|
83
111
|
summary: Helper script to dump, download, and remote a remote PostgreSQL database
|