wyrm 0.3.0 → 0.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7c67007e35f84f5542da888c17fc91f6e1fe03cb
4
- data.tar.gz: 7434160ebe9385f72d04546b69480d457a13e315
3
+ metadata.gz: 2353cb241637c8a85c0f105bb190dd8edd4a5324
4
+ data.tar.gz: eb33c310f9030aeb682f310857f13d3dd8ff209d
5
5
  SHA512:
6
- metadata.gz: 11ccf21e5c471e7c06a2a0c27739875d1197570d3c2049a27d284327bd748a0411f3280ab9c89bb865c2c882aa1019a371ecff5105b86baab81c01ce9be8520c
7
- data.tar.gz: 96f35474f2770b85b277b5b1cdb64798b4cba183d9ad6b7753d2ded403f878bd7130c4ca634b69262ee812160147a4c674466ca4347fef42c71c2e99e87f9934
6
+ metadata.gz: e71ad3b6bac9fdf802ec232885b7f28af657bf9a2eb819e5386bebd990f0e705ee4d7ddd54bbb401c4b134581a6bde4c2baf81380bfd4ad49c1a601e37633e31
7
+ data.tar.gz: af05ca3f7371d87955cf7de056c93f79567d98b27e17718e6471d0b56ae3017e541a555b666c47e0f1daccbecc0c8a09bd89eb128a923c1039eebe911e5976a2
data/.travis.yml ADDED
@@ -0,0 +1,6 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.0.0
4
+ - 2.1.0
5
+ - 2.1.1
6
+ script: bundle exec rspec spec
data/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2013 John Anderson
1
+ Copyright (c) 2013,2014 John Anderson
2
2
 
3
3
  MIT License
4
4
 
data/README.md CHANGED
@@ -1,6 +1,4 @@
1
- # Wyrm
2
-
3
- [![Gem Version](https://badge.fury.io/rb/wyrm.png)](http://badge.fury.io/rb/wyrm)
1
+ # Wyrm [![Gem Version](https://badge.fury.io/rb/wyrm.png)](http://badge.fury.io/rb/wyrm) [![Build Status](https://travis-ci.org/djellemah/wyrm.png?branch=master)](https://travis-ci.org/djellemah/wyrm)
4
2
 
5
3
  Transfer a database from one rdbms to another (eg mysql to postgres). Either via
6
4
  a set of files, or direct from one db server to another.
data/lib/wyrm/dump.rb CHANGED
@@ -11,8 +11,8 @@ require 'wyrm/logger'
11
11
  # ds.call
12
12
  # TODO possibly use Gem::Package::TarWriter to write tar files
13
13
  class Wyrm::Dump
14
- include PumpMaker
15
- include SchemaTools
14
+ include Wyrm::PumpMaker
15
+ include Wyrm::SchemaTools
16
16
  include Wyrm::Logger
17
17
 
18
18
  def initialize( src_db, container = nil, pump: nil )
data/lib/wyrm/hole.rb CHANGED
@@ -56,8 +56,7 @@ module Wyrm
56
56
  def queue
57
57
  @queue ||=
58
58
  if RUBY_VERSION == '2.1.0'
59
- logger.warn "SizedQueue broken in 2.1.0 (https://bugs.ruby-lang.org/issues/9302). Falling back to Queue, which may run out of memory."
60
- Queue.new
59
+ raise "Queue broken in 2.1.0 possibly related to https://bugs.ruby-lang.org/issues/9302"
61
60
  else
62
61
  SizedQueue.new 5000
63
62
  end
data/lib/wyrm/pump.rb CHANGED
@@ -49,11 +49,12 @@ class Wyrm::Pump
49
49
  @db.extension :pagination
50
50
 
51
51
  # turn on postgres streaming if available
52
- if defined?( Sequel::Postgres ) && defined?(Sequel::Postgres.supports_streaming?) && Sequel::Postgres.supports_streaming?
53
- logger.debug "Streaming for postgres"
52
+ # also gets called for non-postgres dbs, but that seems to be fine.
53
+ if defined?( Sequel::Postgres ) && @db.is_a?(Sequel::Postgres::Database) && defined?(Sequel::Postgres.supports_streaming?) && Sequel::Postgres.supports_streaming?
54
54
  @db.extension :pg_streaming
55
+ logger.info "Streaming for #{@db.uri}"
55
56
  else
56
- logger.info "No streaming for postgres"
57
+ logger.info "No streaming for #{@db.uri}"
57
58
  end
58
59
  end
59
60
 
data/lib/wyrm/restore.rb CHANGED
@@ -16,8 +16,8 @@ require 'wyrm/schema_tools'
16
16
  # end of they probably lengthy table restore process.
17
17
  # TODO check if table has been restored already, and has the correct rows,
18
18
  class Wyrm::Restore
19
- include PumpMaker
20
- include SchemaTools
19
+ include Wyrm::PumpMaker
20
+ include Wyrm::SchemaTools
21
21
  include Wyrm::Logger
22
22
 
23
23
  def initialize( container, dst_db, pump: nil, drop_tables: false )
data/lib/wyrm/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Wyrm
2
- VERSION = "0.3.0"
2
+ VERSION = "0.3.1"
3
3
  end
data/lib/wyrm.rb CHANGED
@@ -2,5 +2,6 @@ require 'wyrm/module'
2
2
 
3
3
  require "wyrm/version"
4
4
  require "wyrm/pump.rb"
5
- require "wyrm/restore_schema.rb"
6
- require "wyrm/dump_schema.rb"
5
+ require "wyrm/restore.rb"
6
+ require "wyrm/dump.rb"
7
+ require "wyrm/hole.rb"
@@ -2,7 +2,11 @@ require 'rspec'
2
2
 
3
3
  require Pathname(__dir__) + '../lib/wyrm/hole.rb'
4
4
 
5
+
5
6
  describe Wyrm::Hole::Mouth do
7
+ if RUBY_VERSION == '2.1.0'
8
+ it 'Queue broken on 2.1.0'
9
+ else
6
10
  describe '#flush' do
7
11
  it 'calls poison_queue' do
8
12
  subject.should_receive(:poison_queue)
@@ -168,9 +172,9 @@ describe Wyrm::Hole::Mouth do
168
172
  # has a logger which nothing else uses
169
173
  it 'works' do
170
174
  Wyrm::Hole::Mouth::RUBY_VERSION = '2.1.0'
171
- subject.should_receive(:logger).and_call_original
172
- subject.queue
175
+ ->{subject.queue}.should raise_error(/broken in 2.1.0/)
173
176
  Wyrm::Hole::Mouth.send :remove_const, :RUBY_VERSION
174
177
  end
175
178
  end
179
+ end #unless RUBY_VERSION == '2.1.0'
176
180
  end
data/spec/pump_spec.rb CHANGED
@@ -18,11 +18,41 @@ describe Pump do
18
18
  end
19
19
 
20
20
  describe '#table_name=' do
21
- it 'invalidates caches'
21
+ it 'invalidates caches' do
22
+ subject.should_receive(:invalidate_cached_members)
23
+ subject.table_name = :big_face
24
+ end
22
25
  end
23
26
 
24
27
  describe '#db=' do
25
- it 'invalidates caches'
28
+ it 'invalidates caches' do
29
+ subject.should_receive(:invalidate_cached_members)
30
+ subject.db = Sequel.sqlite
31
+ end
32
+
33
+ it 'handles nil db' do
34
+ ->{subject.db = nil}.should_not raise_error
35
+ end
36
+
37
+ it 'adds pagination extension' do
38
+ db = Sequel.sqlite
39
+ db.should_receive(:extension).with(:pagination)
40
+ subject.db = db
41
+ end
42
+
43
+ it 'turns on streaming for postgres' do
44
+ db = Sequel.postgres
45
+ db.should_receive(:extension).with(:pagination)
46
+ db.should_receive(:extension).with(:pg_streaming)
47
+ subject.db = db
48
+ end
49
+
50
+ it 'no streaming for non-postgres' do
51
+ db = Sequel.sqlite
52
+ db.should_receive(:extension).with(:pagination)
53
+ db.should_not_receive(:extension).with(:pg_streaming)
54
+ subject.db = db
55
+ end
26
56
  end
27
57
 
28
58
  describe '#codec=' do
data/spec/wyrm_spec.rb ADDED
@@ -0,0 +1,13 @@
1
+ require 'rspec'
2
+
3
+ # include this here because at least once I forgot to update this
4
+ # when file names changed
5
+ require Pathname(__dir__) + '../lib/wyrm.rb'
6
+
7
+ include Wyrm
8
+
9
+ describe Wyrm do
10
+ it 'has the right constants' do
11
+ Wyrm.constants.sort.should == [:Dump, :Hole, :Logger, :Pump, :PumpMaker, :Restore, :SchemaTools, :VERSION].sort
12
+ end
13
+ 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.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Anderson
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-08 00:00:00.000000000 Z
11
+ date: 2014-06-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sequel
@@ -175,6 +175,7 @@ extra_rdoc_files: []
175
175
  files:
176
176
  - ".gitignore"
177
177
  - ".rvmrc"
178
+ - ".travis.yml"
178
179
  - Gemfile
179
180
  - LICENSE.txt
180
181
  - README.md
@@ -198,6 +199,7 @@ files:
198
199
  - spec/hole_mouth_spec.rb
199
200
  - spec/pump_spec.rb
200
201
  - spec/schema_tools_spec.rb
202
+ - spec/wyrm_spec.rb
201
203
  - wyrm.gemspec
202
204
  homepage: https://github.com/djellemah/wyrm
203
205
  licenses:
@@ -219,7 +221,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
219
221
  version: '0'
220
222
  requirements: []
221
223
  rubyforge_project:
222
- rubygems_version: 2.2.2
224
+ rubygems_version: 2.1.11
223
225
  signing_key:
224
226
  specification_version: 4
225
227
  summary: Transfer from one SQL rdbms to another
@@ -228,3 +230,4 @@ test_files:
228
230
  - spec/hole_mouth_spec.rb
229
231
  - spec/pump_spec.rb
230
232
  - spec/schema_tools_spec.rb
233
+ - spec/wyrm_spec.rb