taps 0.2.25 → 0.2.26

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.
data/VERSION.yml CHANGED
@@ -1,4 +1,5 @@
1
1
  ---
2
2
  :major: 0
3
3
  :minor: 2
4
- :patch: 25
4
+ :build:
5
+ :patch: 26
data/bin/schema CHANGED
@@ -20,21 +20,22 @@ EOTXT
20
20
  exit(1)
21
21
  end
22
22
 
23
- if cmd == 'dump'
23
+ case cmd
24
+ when 'dump'
24
25
  puts Taps::Schema.dump_without_indexes(database_url)
25
- elsif cmd == 'indexes'
26
+ when 'indexes'
26
27
  puts Taps::Schema.indexes(database_url)
27
- elsif cmd == 'load_indexes'
28
+ when 'load_indexes'
28
29
  filename = ARGV.shift.strip rescue ''
29
30
  indexes = File.read(filename) rescue show_usage_and_exit
30
31
  Taps::Schema.load_indexes(database_url, indexes)
31
- elsif cmd == 'load'
32
+ when 'load'
32
33
  filename = ARGV.shift.strip rescue ''
33
34
  schema = File.read(filename) rescue show_usage_and_exit
34
35
  Taps::Schema.load(database_url, schema)
35
- elsif cmd == 'reset_db_sequences'
36
+ when 'reset_db_sequences'
36
37
  Taps::Schema.reset_db_sequences(database_url)
37
- elsif cmd == 'console'
38
+ when 'console'
38
39
  Taps::Schema.connection(database_url)
39
40
  $db = ActiveRecord::Base.connection
40
41
  require 'irb'
@@ -114,10 +114,8 @@ class ClientSession
114
114
 
115
115
  puts "#{tables_with_counts.size} tables, #{format_number(record_count)} records"
116
116
 
117
-
118
- db.tables.each do |table_name|
117
+ tables_with_counts.each do |table_name, count|
119
118
  table = db[table_name]
120
- count = table.count
121
119
  order = Taps::Utils.order_by(db, table_name)
122
120
  chunksize = self.default_chunksize
123
121
  string_columns = Taps::Utils.incorrect_blobs(db, table_name)
@@ -128,11 +126,13 @@ class ClientSession
128
126
  loop do
129
127
  row_size = 0
130
128
  chunksize = Taps::Utils.calculate_chunksize(chunksize) do |c|
129
+ time_skip_start = Time.now
131
130
  rows = Taps::Utils.format_data(table.order(*order).limit(c, offset).all, string_columns)
132
131
  break if rows == { }
133
132
 
134
133
  row_size = rows[:data].size
135
134
  gzip_data = Taps::Utils.gzip(Marshal.dump(rows))
135
+ time_skip = Time.now - time_skip_start
136
136
 
137
137
  begin
138
138
  session_resource["tables/#{table_name}"].post(gzip_data, http_headers({
@@ -145,6 +145,7 @@ class ClientSession
145
145
  end
146
146
  raise
147
147
  end
148
+ time_skip
148
149
  end
149
150
 
150
151
  progress.inc(row_size)
@@ -158,12 +159,10 @@ class ClientSession
158
159
  end
159
160
 
160
161
  def fetch_tables_info
161
- record_count = 0
162
- tables = db.tables
163
- tables_with_counts = tables.inject({}) do |accum, table|
164
- accum[table] = db[table].count
165
- record_count += accum[table]
166
- accum
162
+ tables_with_counts = {}
163
+ record_count = db.tables.inject(0) do |record_count, table|
164
+ tables_with_counts[table] = db[table].count
165
+ record_count += tables_with_counts[table]
167
166
  end
168
167
 
169
168
  [ tables_with_counts, record_count ]
data/lib/taps/config.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'sequel'
2
2
  require 'sqlite3'
3
+ require 'yaml'
3
4
 
4
5
  module Taps
5
6
  def self.version_yml
data/lib/taps/utils.rb CHANGED
@@ -76,9 +76,11 @@ module Utils
76
76
  chunksize = old_chunksize
77
77
 
78
78
  retries = 0
79
+ time_in_db = 0
79
80
  begin
80
81
  t1 = Time.now
81
- yield chunksize
82
+ time_in_db = yield chunksize
83
+ time_in_db = time_in_db.to_f rescue 0
82
84
  rescue Errno::EPIPE, RestClient::RequestFailed
83
85
  retries += 1
84
86
  raise if retries > 2
@@ -92,7 +94,8 @@ module Utils
92
94
 
93
95
  t2 = Time.now
94
96
 
95
- diff = t2 - t1
97
+ diff = t2 - t1 - time_in_db
98
+
96
99
  new_chunksize = if retries > 0
97
100
  chunksize
98
101
  elsif diff > 3.0
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: taps
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.25
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 2
8
+ - 26
9
+ version: 0.2.26
5
10
  platform: ruby
6
11
  authors:
7
12
  - Ricardo Chimal, Jr.
@@ -10,72 +15,100 @@ autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
17
 
13
- date: 2010-02-11 00:00:00 -08:00
18
+ date: 2010-02-25 00:00:00 -08:00
14
19
  default_executable:
15
20
  dependencies:
16
21
  - !ruby/object:Gem::Dependency
17
22
  name: sinatra
18
- type: :runtime
19
- version_requirement:
20
- version_requirements: !ruby/object:Gem::Requirement
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
21
25
  requirements:
22
26
  - - "="
23
27
  - !ruby/object:Gem::Version
28
+ segments:
29
+ - 0
30
+ - 9
31
+ - 2
24
32
  version: 0.9.2
25
- version:
33
+ type: :runtime
34
+ version_requirements: *id001
26
35
  - !ruby/object:Gem::Dependency
27
36
  name: activerecord
28
- type: :runtime
29
- version_requirement:
30
- version_requirements: !ruby/object:Gem::Requirement
37
+ prerelease: false
38
+ requirement: &id002 !ruby/object:Gem::Requirement
31
39
  requirements:
32
40
  - - "="
33
41
  - !ruby/object:Gem::Version
42
+ segments:
43
+ - 2
44
+ - 2
45
+ - 2
34
46
  version: 2.2.2
35
- version:
47
+ type: :runtime
48
+ version_requirements: *id002
36
49
  - !ruby/object:Gem::Dependency
37
50
  name: thor
38
- type: :runtime
39
- version_requirement:
40
- version_requirements: !ruby/object:Gem::Requirement
51
+ prerelease: false
52
+ requirement: &id003 !ruby/object:Gem::Requirement
41
53
  requirements:
42
54
  - - "="
43
55
  - !ruby/object:Gem::Version
56
+ segments:
57
+ - 0
58
+ - 9
59
+ - 9
44
60
  version: 0.9.9
45
- version:
61
+ type: :runtime
62
+ version_requirements: *id003
46
63
  - !ruby/object:Gem::Dependency
47
64
  name: rest-client
48
- type: :runtime
49
- version_requirement:
50
- version_requirements: !ruby/object:Gem::Requirement
65
+ prerelease: false
66
+ requirement: &id004 !ruby/object:Gem::Requirement
51
67
  requirements:
52
68
  - - ~>
53
69
  - !ruby/object:Gem::Version
70
+ segments:
71
+ - 1
72
+ - 3
73
+ - 0
54
74
  version: 1.3.0
55
- version:
75
+ type: :runtime
76
+ version_requirements: *id004
56
77
  - !ruby/object:Gem::Dependency
57
78
  name: sequel
58
- type: :runtime
59
- version_requirement:
60
- version_requirements: !ruby/object:Gem::Requirement
79
+ prerelease: false
80
+ requirement: &id005 !ruby/object:Gem::Requirement
61
81
  requirements:
62
82
  - - ">="
63
83
  - !ruby/object:Gem::Version
84
+ segments:
85
+ - 3
86
+ - 0
87
+ - 0
64
88
  version: 3.0.0
65
89
  - - <
66
90
  - !ruby/object:Gem::Version
91
+ segments:
92
+ - 3
93
+ - 1
94
+ - 0
67
95
  version: 3.1.0
68
- version:
96
+ type: :runtime
97
+ version_requirements: *id005
69
98
  - !ruby/object:Gem::Dependency
70
99
  name: sqlite3-ruby
71
- type: :runtime
72
- version_requirement:
73
- version_requirements: !ruby/object:Gem::Requirement
100
+ prerelease: false
101
+ requirement: &id006 !ruby/object:Gem::Requirement
74
102
  requirements:
75
103
  - - ~>
76
104
  - !ruby/object:Gem::Version
105
+ segments:
106
+ - 1
107
+ - 2
108
+ - 0
77
109
  version: 1.2.0
78
- version:
110
+ type: :runtime
111
+ version_requirements: *id006
79
112
  description: A simple database agnostic import/export app to transfer data to/from a remote database.
80
113
  email: ricardo@heroku.com
81
114
  executables:
@@ -125,24 +158,26 @@ required_ruby_version: !ruby/object:Gem::Requirement
125
158
  requirements:
126
159
  - - ">="
127
160
  - !ruby/object:Gem::Version
161
+ segments:
162
+ - 0
128
163
  version: "0"
129
- version:
130
164
  required_rubygems_version: !ruby/object:Gem::Requirement
131
165
  requirements:
132
166
  - - ">="
133
167
  - !ruby/object:Gem::Version
168
+ segments:
169
+ - 0
134
170
  version: "0"
135
- version:
136
171
  requirements: []
137
172
 
138
173
  rubyforge_project: taps
139
- rubygems_version: 1.3.5
174
+ rubygems_version: 1.3.6
140
175
  signing_key:
141
176
  specification_version: 3
142
177
  summary: simple database import/export app
143
178
  test_files:
144
- - spec/schema_spec.rb
179
+ - spec/base.rb
145
180
  - spec/client_session_spec.rb
146
- - spec/utils_spec.rb
181
+ - spec/schema_spec.rb
147
182
  - spec/server_spec.rb
148
- - spec/base.rb
183
+ - spec/utils_spec.rb