db-clone 1.0.0 → 1.0.1
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/README.rdoc +1 -1
- data/app/assets/javascripts/{db_sync → db-clone}/application.js +0 -0
- data/app/assets/stylesheets/{db_sync → db-clone}/application.css +0 -0
- data/app/controllers/db_sync/application_controller.rb +1 -1
- data/app/helpers/{db_sync → db-clone}/application_helper.rb +1 -1
- data/app/views/layouts/db-clone/application.html.erb +14 -0
- data/config/routes.rb +1 -1
- data/lib/{db_sync.rb → db-clone.rb} +9 -9
- data/lib/{db_sync → db-clone}/cmd_builder.rb +2 -2
- data/lib/{db_sync → db-clone}/db_selections.rb +3 -3
- data/lib/{db_sync → db-clone}/engine.rb +2 -2
- data/lib/db-clone/version.rb +3 -0
- data/lib/tasks/db-clone_tasks.rake +6 -0
- data/spec/cmd_builder_spec.rb +2 -2
- data/spec/{db_sync_spec.rb → db-clone_spec.rb} +4 -4
- data/spec/db_selections_spec.rb +3 -3
- data/spec/dummy/config/application.rb +1 -1
- data/spec/dummy/config/routes.rb +1 -1
- metadata +17 -17
- data/app/views/layouts/db_sync/application.html.erb +0 -14
- data/lib/db_sync/version.rb +0 -3
- data/lib/tasks/db_sync_tasks.rake +0 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fcd326c93a4c6b9b352dc708d6162af97069b798
|
4
|
+
data.tar.gz: e2f9818beb86828373daf75c5ed7c341f6442473
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 09f9de4e8c1ab172b344f60c14cc5360d46ef9f86bebe3d2baa9d274c556489607eecd662dcee69a61d47e402c0a824ded3acee9366cd51de6890783b001b6b0
|
7
|
+
data.tar.gz: 72c2c5bc5c50e32a78c0ca50fbe9054a4754b56b22b608d64d3b3bc15474ccf253a2685fe871371ba9825de4ae8c49a14869a562c07167911417231075481093
|
data/README.rdoc
CHANGED
File without changes
|
File without changes
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>DbClone</title>
|
5
|
+
<%= stylesheet_link_tag "db-clone/application", media: "all" %>
|
6
|
+
<%= javascript_include_tag "db-clone/application" %>
|
7
|
+
<%= csrf_meta_tags %>
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
|
11
|
+
<%= yield %>
|
12
|
+
|
13
|
+
</body>
|
14
|
+
</html>
|
data/config/routes.rb
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
|
1
|
+
DbClone::Engine.routes.draw do
|
2
2
|
end
|
@@ -1,16 +1,16 @@
|
|
1
1
|
require 'colorize'
|
2
|
-
require '
|
3
|
-
require '
|
4
|
-
require '
|
2
|
+
require 'db-clone/cmd_builder'
|
3
|
+
require 'db-clone/db_selections'
|
4
|
+
require 'db-clone/engine'
|
5
5
|
|
6
|
-
module
|
6
|
+
module DbClone
|
7
7
|
mattr_accessor :config
|
8
8
|
|
9
|
-
def self.
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
9
|
+
def self.clone!( **opts )
|
10
|
+
DbClone.config ||= {}
|
11
|
+
DbClone.config[:ignore_tables] ||= []
|
12
|
+
DbClone.config[:default_source] ||= 'production'
|
13
|
+
DbClone.config[:default_destination] ||= 'development'
|
14
14
|
|
15
15
|
ds = DbSelections.new Rails.root.join('config', 'database.yml')
|
16
16
|
src_dest = if opts[:manual]
|
@@ -1,4 +1,4 @@
|
|
1
|
-
module
|
1
|
+
module DbClone
|
2
2
|
class CmdBuilder
|
3
3
|
VALID_DB_KEYS = ['host', 'port', 'username', 'database', 'password']
|
4
4
|
SUPPORTED_DBS = [:mysql, :postgresql]
|
@@ -27,7 +27,7 @@ module DbSync
|
|
27
27
|
"--port=#{src_dest[:src]['port']}"
|
28
28
|
]
|
29
29
|
|
30
|
-
|
30
|
+
DbClone.config[:ignore_tables].each{|tbl| mysqldump_args << "--ignore-table=#{src_dest[:dest]['database']}.#{tbl}"} if DbClone.config && DbClone.config[:ignore_tables].is_a?(Array)
|
31
31
|
|
32
32
|
(mysqldump_args + [
|
33
33
|
"#{src_dest[:src]['database']}",
|
@@ -1,13 +1,13 @@
|
|
1
1
|
require 'yaml'
|
2
2
|
|
3
|
-
module
|
3
|
+
module DbClone
|
4
4
|
class DbSelections
|
5
5
|
# read database blocks from config/database.yml
|
6
6
|
def initialize( database_yml )
|
7
7
|
h = YAML.load_file database_yml
|
8
8
|
@dbs = h.sort_by{|k,v| k}.map{|k,v| v.merge(label: k)}
|
9
|
-
@default_src_idx = @dbs.find_index{|db| db[:label] ==
|
10
|
-
@default_dest_idx = @dbs.find_index{|db| db[:label] ==
|
9
|
+
@default_src_idx = @dbs.find_index{|db| db[:label] == DbClone.config[:default_source]}
|
10
|
+
@default_dest_idx = @dbs.find_index{|db| db[:label] == DbClone.config[:default_destination]}
|
11
11
|
@selections = {src: nil, dest: nil}
|
12
12
|
end
|
13
13
|
|
data/spec/cmd_builder_spec.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'rails_helper'
|
2
2
|
|
3
|
-
module
|
3
|
+
module DbClone
|
4
4
|
describe CmdBuilder do
|
5
5
|
describe 'postgresql command builder' do
|
6
6
|
h = {
|
@@ -62,7 +62,7 @@ module DbSync
|
|
62
62
|
end
|
63
63
|
|
64
64
|
it 'should be able to generate a mysqldump command with ignore tables' do
|
65
|
-
|
65
|
+
DbClone.config = {
|
66
66
|
ignore_tables: ['tableAAAA', 'tableBBBB', 'tableCCCC']
|
67
67
|
}
|
68
68
|
cb = CmdBuilder.new @h
|
@@ -1,9 +1,9 @@
|
|
1
1
|
require 'rails_helper'
|
2
2
|
|
3
|
-
module
|
4
|
-
describe
|
5
|
-
it 'should be able to auto
|
6
|
-
|
3
|
+
module DbClone
|
4
|
+
describe DbClone do
|
5
|
+
it 'should be able to auto clone' do
|
6
|
+
DbClone.config = {
|
7
7
|
default_source: 'second_test_mysql',
|
8
8
|
default_destination: 'test_mysql',
|
9
9
|
}
|
data/spec/db_selections_spec.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
require 'rails_helper'
|
2
2
|
|
3
|
-
module
|
3
|
+
module DbClone
|
4
4
|
describe DbSelections do
|
5
5
|
describe 'db selections' do
|
6
|
-
|
6
|
+
DbClone.config = {
|
7
7
|
default_source: 'production',
|
8
8
|
default_destination: 'development',
|
9
9
|
}
|
@@ -61,7 +61,7 @@ module DbSync
|
|
61
61
|
describe 'db mismatched selections' do
|
62
62
|
ds = DbSelections.new Rails.root.join('config', 'database.yml')
|
63
63
|
|
64
|
-
it 'should prohibit
|
64
|
+
it 'should prohibit cloneing between different adapters' do
|
65
65
|
expect { ds.source_prompt }.to output.to_stdout
|
66
66
|
allow(STDIN).to receive(:gets) { '7' }
|
67
67
|
expect { ds.source_get }.to output.to_stdout
|
data/spec/dummy/config/routes.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: db-clone
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sean Huber
|
@@ -80,8 +80,8 @@ dependencies:
|
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '3.4'
|
83
|
-
description: rake db:
|
84
|
-
to copy to a specific destination database. Supports postgreql and mysql.
|
83
|
+
description: rake db:clone[manual] provides a CLI for selecting a specific source
|
84
|
+
database to copy to a specific destination database. Supports postgreql and mysql.
|
85
85
|
email:
|
86
86
|
- seanhuber@seanhuber.com
|
87
87
|
executables: []
|
@@ -91,21 +91,21 @@ files:
|
|
91
91
|
- MIT-LICENSE
|
92
92
|
- README.rdoc
|
93
93
|
- Rakefile
|
94
|
-
- app/assets/javascripts/
|
95
|
-
- app/assets/stylesheets/
|
94
|
+
- app/assets/javascripts/db-clone/application.js
|
95
|
+
- app/assets/stylesheets/db-clone/application.css
|
96
96
|
- app/controllers/db_sync/application_controller.rb
|
97
|
-
- app/helpers/
|
98
|
-
- app/views/layouts/
|
97
|
+
- app/helpers/db-clone/application_helper.rb
|
98
|
+
- app/views/layouts/db-clone/application.html.erb
|
99
99
|
- config/routes.rb
|
100
|
-
- lib/
|
101
|
-
- lib/
|
102
|
-
- lib/
|
103
|
-
- lib/
|
104
|
-
- lib/
|
105
|
-
- lib/tasks/
|
100
|
+
- lib/db-clone.rb
|
101
|
+
- lib/db-clone/cmd_builder.rb
|
102
|
+
- lib/db-clone/db_selections.rb
|
103
|
+
- lib/db-clone/engine.rb
|
104
|
+
- lib/db-clone/version.rb
|
105
|
+
- lib/tasks/db-clone_tasks.rake
|
106
106
|
- spec/cmd_builder_spec.rb
|
107
|
+
- spec/db-clone_spec.rb
|
107
108
|
- spec/db_selections_spec.rb
|
108
|
-
- spec/db_sync_spec.rb
|
109
109
|
- spec/dummy/README.rdoc
|
110
110
|
- spec/dummy/Rakefile
|
111
111
|
- spec/dummy/app/assets/javascripts/application.js
|
@@ -145,7 +145,7 @@ files:
|
|
145
145
|
- spec/dummy/public/favicon.ico
|
146
146
|
- spec/rails_helper.rb
|
147
147
|
- spec/spec_helper.rb
|
148
|
-
homepage: https://github.com/seanhuber/db-
|
148
|
+
homepage: https://github.com/seanhuber/db-clone
|
149
149
|
licenses:
|
150
150
|
- MIT
|
151
151
|
metadata: {}
|
@@ -168,11 +168,11 @@ rubyforge_project:
|
|
168
168
|
rubygems_version: 2.5.1
|
169
169
|
signing_key:
|
170
170
|
specification_version: 4
|
171
|
-
summary: rake db:
|
171
|
+
summary: rake db:clone will clone your production database to development
|
172
172
|
test_files:
|
173
173
|
- spec/cmd_builder_spec.rb
|
174
|
+
- spec/db-clone_spec.rb
|
174
175
|
- spec/db_selections_spec.rb
|
175
|
-
- spec/db_sync_spec.rb
|
176
176
|
- spec/dummy/app/assets/javascripts/application.js
|
177
177
|
- spec/dummy/app/assets/stylesheets/application.css
|
178
178
|
- spec/dummy/app/controllers/application_controller.rb
|
@@ -1,14 +0,0 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html>
|
3
|
-
<head>
|
4
|
-
<title>DbSync</title>
|
5
|
-
<%= stylesheet_link_tag "db_sync/application", media: "all" %>
|
6
|
-
<%= javascript_include_tag "db_sync/application" %>
|
7
|
-
<%= csrf_meta_tags %>
|
8
|
-
</head>
|
9
|
-
<body>
|
10
|
-
|
11
|
-
<%= yield %>
|
12
|
-
|
13
|
-
</body>
|
14
|
-
</html>
|
data/lib/db_sync/version.rb
DELETED