backhoe 0.1.0 → 0.2.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b8d6001b54a0a90fc11dbe15f9a27320376b6be3
4
- data.tar.gz: 7f55efed05d44777ebccdfb3941595cc36908b5c
3
+ metadata.gz: d019d5b66f418151f88ebf3d897d0272a32d173e
4
+ data.tar.gz: f6e7f9c5df280e9730f6d48da8b37d756d54165e
5
5
  SHA512:
6
- metadata.gz: a3ece5cfcd29f874cb439ab7c18345d35963c515473e4d58933b47060e39d661949e2d619a34aea7827442c6c3068197f5adcf1451c5ef99338a00eda19a36ab
7
- data.tar.gz: a18b79000eaf16384b544c8f43f8f49cfac690c176fe2934d78132ad67af31096ab2bce4f8b3555ef6a25d79744e7a20001d88bf7cf889af5cf679d7da112592
6
+ metadata.gz: 6750d9c40ce7993f43a5a14b183833d533a475adbab48d249f7f7ac6295ef81fac6e5f046c676166d4a75cb38a8c3f5eafe9895695525813131ee1081bdd51f5
7
+ data.tar.gz: 14f0271c2c51661fd1822655bfb15c47c2eba52ac878cbd5b097be601876c86d470b79610cb3bddb0fc4737d9289b29cd8b9054de24230ce27c8f3b8e37ecfe7
data/.gitignore CHANGED
@@ -6,6 +6,8 @@
6
6
  /pkg/
7
7
  /spec/reports/
8
8
  /tmp/
9
+ /.ruby-version
10
+ /Gemfile.lock
9
11
 
10
12
  # rspec failure tracking
11
13
  .rspec_status
data/lib/backhoe.rb CHANGED
@@ -6,19 +6,18 @@ module Backhoe
6
6
  mattr_accessor(:file_path) { "db/data.sql" }
7
7
 
8
8
  class << self
9
- def dump
10
- autodetect_adapter.dump
9
+ def dump file_path: Backhoe.file_path, **options
10
+ autodetect_adapter.new(database_config, file_path).dump **options
11
11
  end
12
12
 
13
- def load
14
- autodetect_adapter.load
13
+ def load file_path: Backhoe.file_path
14
+ autodetect_adapter.new(database_config, file_path).load
15
15
  end
16
16
 
17
17
  private
18
18
 
19
19
  def autodetect_adapter
20
- klass = const_get(database_config["adapter"].camelize)
21
- klass.new(database_config, file_path)
20
+ const_get(database_config["adapter"].camelize)
22
21
  end
23
22
 
24
23
  def database_config
@@ -37,10 +36,10 @@ module Backhoe
37
36
  end
38
37
 
39
38
  class Mysql < Base
40
- def dump
39
+ def dump skip_tables: []
41
40
  mysqldump = `which mysqldump`.strip
42
41
  raise RuntimeError, "Cannot find mysqldump." if mysqldump.blank?
43
- sh "#{mysqldump} --no-create-db --single-transaction --quick -e #{mysql_options} > #{file_path}"
42
+ sh "#{mysqldump} --no-create-db --single-transaction --quick -e #{skip_table_options(skip_tables)} #{mysql_options} > #{file_path}"
44
43
  end
45
44
 
46
45
  def load
@@ -50,6 +49,12 @@ module Backhoe
50
49
  end
51
50
 
52
51
  private
52
+
53
+ def skip_table_options skip_tables
54
+ skip_tables.map do |table|
55
+ "--ignore-table=#{config["database"]}.#{table}"
56
+ end.join(" ")
57
+ end
53
58
 
54
59
  def mysql_options
55
60
  options = " -u #{config["username"]}"
@@ -63,7 +68,7 @@ module Backhoe
63
68
  Mysql2 = Mysql
64
69
 
65
70
  class Sqlite3 < Base
66
- def dump
71
+ def dump **_
67
72
  FileUtils.cp database, file_path
68
73
  end
69
74
 
@@ -73,7 +78,7 @@ module Backhoe
73
78
  end
74
79
 
75
80
  class Postgresql < Base
76
- def dump
81
+ def dump **_
77
82
  pg_dump = `which pg_dump`.strip
78
83
  raise RuntimeError, "Cannot find pg_dump." if pg_dump.blank?
79
84
  sh "#{pg_dump} -c -f#{file_path} #{database}"
@@ -1,3 +1,3 @@
1
1
  module Backhoe
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: backhoe
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Micah Geisel
@@ -63,7 +63,6 @@ files:
63
63
  - ".rspec"
64
64
  - ".travis.yml"
65
65
  - Gemfile
66
- - Gemfile.lock
67
66
  - LICENSE.txt
68
67
  - README.md
69
68
  - Rakefile
@@ -92,7 +91,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
92
91
  version: '0'
93
92
  requirements: []
94
93
  rubyforge_project:
95
- rubygems_version: 2.6.8
94
+ rubygems_version: 2.6.14
96
95
  signing_key:
97
96
  specification_version: 4
98
97
  summary: Dump and load current database to and from a file.
data/Gemfile.lock DELETED
@@ -1,35 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- backhoe (0.1.0)
5
-
6
- GEM
7
- remote: https://rubygems.org/
8
- specs:
9
- diff-lcs (1.3)
10
- rake (10.5.0)
11
- rspec (3.7.0)
12
- rspec-core (~> 3.7.0)
13
- rspec-expectations (~> 3.7.0)
14
- rspec-mocks (~> 3.7.0)
15
- rspec-core (3.7.1)
16
- rspec-support (~> 3.7.0)
17
- rspec-expectations (3.7.0)
18
- diff-lcs (>= 1.2.0, < 2.0)
19
- rspec-support (~> 3.7.0)
20
- rspec-mocks (3.7.0)
21
- diff-lcs (>= 1.2.0, < 2.0)
22
- rspec-support (~> 3.7.0)
23
- rspec-support (3.7.1)
24
-
25
- PLATFORMS
26
- ruby
27
-
28
- DEPENDENCIES
29
- backhoe!
30
- bundler (~> 1.16)
31
- rake (~> 10.0)
32
- rspec (~> 3.0)
33
-
34
- BUNDLED WITH
35
- 1.16.1