wyrm 0.4.1 → 0.4.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/.travis.yml +4 -2
- data/Gemfile +18 -26
- data/History.txt +4 -0
- data/README.md +2 -0
- data/lib/wyrm/dump.rb +100 -75
- data/lib/wyrm/logger.rb +1 -1
- data/lib/wyrm/pump.rb +249 -247
- data/lib/wyrm/pump_maker.rb +23 -22
- data/lib/wyrm/restore.rb +90 -76
- data/lib/wyrm/schema_tools.rb +69 -62
- data/lib/wyrm/version.rb +1 -1
- data/spec/pump_spec.rb +7 -4
- data/spec/rspec_syntax.rb +22 -0
- data/spec/schema_tools_spec.rb +7 -6
- data/wyrm.gemspec +0 -4
- metadata +2 -58
data/spec/rspec_syntax.rb
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
require 'rspec'
|
2
2
|
|
3
|
+
# --enable-frozen-string-literal-debug
|
4
|
+
# RubyVM::InstructionSequence.compile_option = {frozen_string_literal: true}
|
5
|
+
|
3
6
|
# turn off the "old syntax" warnings
|
4
7
|
RSpec.configure do |config|
|
5
8
|
config.mock_with :rspec do |c|
|
@@ -10,3 +13,22 @@ RSpec.configure do |config|
|
|
10
13
|
c.syntax = [:should, :expect]
|
11
14
|
end
|
12
15
|
end
|
16
|
+
|
17
|
+
module DbConnections
|
18
|
+
def sequel_sqlite_db
|
19
|
+
if RUBY_ENGINE == 'jruby'
|
20
|
+
# NOTE trailing : is meaningful to sqlite
|
21
|
+
Sequel.connect 'jdbc:sqlite::memory:'
|
22
|
+
else
|
23
|
+
Sequel.sqlite
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def sequel_postgres_db
|
28
|
+
if RUBY_ENGINE == 'jruby'
|
29
|
+
Sequel.connect "jdbc:postgresql://localhost/#{ENV['USER']}?user=#{ENV['USER']}"
|
30
|
+
else
|
31
|
+
Sequel.postgres
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
data/spec/schema_tools_spec.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
require 'rspec_syntax'
|
2
2
|
require 'sequel'
|
3
|
-
require 'sqlite3'
|
4
3
|
|
5
4
|
require Pathname(__dir__) + '../lib/wyrm/schema_tools.rb'
|
6
5
|
require Pathname(__dir__) + '../lib/wyrm/logger.rb'
|
@@ -8,6 +7,8 @@ require Pathname(__dir__) + '../lib/wyrm/logger.rb'
|
|
8
7
|
include Wyrm
|
9
8
|
|
10
9
|
describe SchemaTools do
|
10
|
+
include DbConnections
|
11
|
+
|
11
12
|
after :each do
|
12
13
|
@src_dst = nil
|
13
14
|
end
|
@@ -28,7 +29,7 @@ describe SchemaTools do
|
|
28
29
|
attr_reader :src_db, :dst_db
|
29
30
|
end
|
30
31
|
|
31
|
-
def src_dst( src_db:
|
32
|
+
def src_dst( src_db: sequel_sqlite_db, dst_db: sequel_sqlite_db )
|
32
33
|
@src_dst ||= Includer.new src_db, dst_db
|
33
34
|
end
|
34
35
|
|
@@ -46,7 +47,7 @@ describe SchemaTools do
|
|
46
47
|
end
|
47
48
|
|
48
49
|
it 'for different db' do
|
49
|
-
src_dst( dst_db:
|
50
|
+
src_dst( dst_db: sequel_postgres_db ).same_db.should == false
|
50
51
|
end
|
51
52
|
end
|
52
53
|
|
@@ -99,7 +100,7 @@ describe SchemaTools do
|
|
99
100
|
end
|
100
101
|
|
101
102
|
it 'cascade for postgres' do
|
102
|
-
src_dst(dst_db:
|
103
|
+
src_dst(dst_db: sequel_postgres_db, src_db: nil).drop_table_options.should == {cascade: true}
|
103
104
|
end
|
104
105
|
end
|
105
106
|
|
@@ -123,7 +124,7 @@ describe SchemaTools do
|
|
123
124
|
with_dst.dst_db.tables.should be_empty
|
124
125
|
end
|
125
126
|
|
126
|
-
if ::SQLite3::SQLITE_VERSION >= "3.6.19"
|
127
|
+
if defined?(::SQLite3) && ::SQLite3::SQLITE_VERSION >= "3.6.19"
|
127
128
|
it 'sqlite mutual foreign keys' do
|
128
129
|
with_dst.dst_db.create_table(:things){|t| primary_key :id; t.String :name}
|
129
130
|
with_dst.dst_db.create_table(:times){|t| primary_key :id; t.foreign_key :thing_id, :things}
|
@@ -189,7 +190,7 @@ describe SchemaTools do
|
|
189
190
|
with_dst.stub(:index_migration){ 'Sequel.migration{}' }
|
190
191
|
with_dst.stub(:fk_migration){ 'Sequel.migration{}' }
|
191
192
|
|
192
|
-
with_dst.dst_db.stub(:database_type){
|
193
|
+
with_dst.dst_db.stub(:database_type){sequel_postgres_db.database_type}
|
193
194
|
|
194
195
|
with_obj = Object.new
|
195
196
|
with_dst.dst_db.should_receive(:tables){[with_obj]}
|
data/wyrm.gemspec
CHANGED
@@ -23,11 +23,7 @@ Gem::Specification.new do |spec|
|
|
23
23
|
|
24
24
|
spec.add_development_dependency "pry"
|
25
25
|
spec.add_development_dependency "pry-debundle"
|
26
|
-
spec.add_development_dependency "pry-byebug"
|
27
26
|
spec.add_development_dependency "bundler", ">= 1.3"
|
28
27
|
spec.add_development_dependency "rake"
|
29
28
|
spec.add_development_dependency "rspec"
|
30
|
-
spec.add_development_dependency "pg"
|
31
|
-
spec.add_development_dependency "sequel_pg"
|
32
|
-
spec.add_development_dependency "sqlite3"
|
33
29
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wyrm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Anderson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-09-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sequel
|
@@ -52,20 +52,6 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: pry-byebug
|
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
|
-
- - ">="
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
69
55
|
- !ruby/object:Gem::Dependency
|
70
56
|
name: bundler
|
71
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,48 +94,6 @@ dependencies:
|
|
108
94
|
- - ">="
|
109
95
|
- !ruby/object:Gem::Version
|
110
96
|
version: '0'
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: pg
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - ">="
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '0'
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - ">="
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: '0'
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: sequel_pg
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
128
|
-
requirements:
|
129
|
-
- - ">="
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: '0'
|
132
|
-
type: :development
|
133
|
-
prerelease: false
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
135
|
-
requirements:
|
136
|
-
- - ">="
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: '0'
|
139
|
-
- !ruby/object:Gem::Dependency
|
140
|
-
name: sqlite3
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
142
|
-
requirements:
|
143
|
-
- - ">="
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
version: '0'
|
146
|
-
type: :development
|
147
|
-
prerelease: false
|
148
|
-
version_requirements: !ruby/object:Gem::Requirement
|
149
|
-
requirements:
|
150
|
-
- - ">="
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
version: '0'
|
153
97
|
description: Compressed cross-rdbms data transfer
|
154
98
|
email:
|
155
99
|
- panic@semiosix.com
|