backhoe 0.1.0 → 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: 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