mongify 0.2.0 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.rdoc CHANGED
@@ -1,3 +1,10 @@
1
+ == 0.2.2 / 11 Sep 2012
2
+ * Fix broken specs (Pranas Kiziela)
3
+ * Fix translation process when embedding multiple objects (Pranas Kiziela)
4
+ * Fix typos (Pranas Kiziela)
5
+ * Rake file fixed to work in Ruby 1.8 and Ruby 1.9
6
+ == 0.2.1 / 11 Sep 2012
7
+ * This version was skipped (internal issues)
1
8
  == 0.2.0 / 01 Jun 2011
2
9
  * Added the ability to modify parent table when working with embedded tables
3
10
  == 0.1.7 / 03 May 2011
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- mongify (0.2.0)
4
+ mongify (0.2.2)
5
5
  activerecord (>= 3.0.3)
6
6
  activesupport (>= 3.0.3)
7
7
  bson_ext (>= 1.1.5)
@@ -26,24 +26,23 @@ GEM
26
26
  bson (1.3.0)
27
27
  bson_ext (1.3.0)
28
28
  builder (2.1.2)
29
- cucumber (0.10.0)
29
+ cucumber (1.2.1)
30
30
  builder (>= 2.1.2)
31
- diff-lcs (~> 1.1.2)
32
- gherkin (~> 2.3.2)
33
- json (~> 1.4.6)
34
- term-ansicolor (~> 1.0.5)
35
- diff-lcs (1.1.2)
36
- gherkin (2.3.3)
37
- json (~> 1.4.6)
31
+ diff-lcs (>= 1.1.3)
32
+ gherkin (~> 2.11.0)
33
+ json (>= 1.4.6)
34
+ diff-lcs (1.1.3)
35
+ gherkin (2.11.2)
36
+ json (>= 1.4.6)
38
37
  highline (1.6.1)
39
38
  i18n (0.5.0)
40
- json (1.4.6)
39
+ json (1.7.5)
41
40
  mocha (0.9.12)
42
41
  mongo (1.3.0)
43
42
  bson (>= 1.3.0)
44
43
  mysql (2.8.1)
45
44
  mysql2 (0.2.7)
46
- rake (0.8.7)
45
+ rake (0.9.2.2)
47
46
  rcov (0.9.9)
48
47
  rspec (2.5.0)
49
48
  rspec-core (~> 2.5.0)
@@ -56,7 +55,6 @@ GEM
56
55
  sqlite3 (1.3.3)
57
56
  sqlite3-ruby (1.3.3)
58
57
  sqlite3 (>= 1.3.3)
59
- term-ansicolor (1.0.5)
60
58
  tzinfo (0.3.26)
61
59
  watchr (0.7)
62
60
  yard (0.6.4)
data/README.rdoc CHANGED
@@ -81,7 +81,7 @@ Creating a translation is pretty straight forward. It looks something like this:
81
81
  table "comments", :embed_in => :posts, :on => :post_id do
82
82
  column "id", :key
83
83
  column "body", :text
84
- column "post_id", :integer, :referneces => :posts
84
+ column "post_id", :integer, :references => :posts
85
85
  column "user_id", :integer, :references => :users
86
86
  column "created_at", :datetime
87
87
  column "updated_at", :datetime
@@ -218,7 +218,7 @@ Before we cover the options, you need to know what types of columns are supporte
218
218
 
219
219
  ==== Options
220
220
 
221
- column "post_id", :integer, :referneces => :posts # Referenced columns need to be marked as such, this will mean that they will be updated
221
+ column "post_id", :integer, :references => :posts # Referenced columns need to be marked as such, this will mean that they will be updated
222
222
  # with the new BSON::ObjectID.
223
223
  # NOTE: if you rename the table 'posts', you should set the :references to the new name
224
224
 
@@ -272,6 +272,7 @@ Just want to thank my wife (Alessia) who not only puts up with me working on my
272
272
  I would also like to thank Mon_Ouie on the Ruby IRC channel for helping me figure out how to setup the internal configuration file reading.
273
273
 
274
274
  Another thanks goes out to eimermusic for his feedback on the gem, and a few bugs that he helps flush out.
275
+ And to Pranas Kiziela who committed some bug and typo fixes that make Mongify even better!
275
276
 
276
277
  == About
277
278
 
data/Rakefile CHANGED
@@ -16,31 +16,36 @@ task :clobber do
16
16
  rm "Gemfile.lock" if File.exist?("Gemfile.lock")
17
17
  end
18
18
 
19
- namespace :rcov do
20
- Cucumber::Rake::Task.new(:cucumber) do |t|
21
- t.rcov = true
22
- t.rcov_opts = %w{--exclude osx\/objc,gems\/,spec\/,features\/ --aggregate coverage.data}
23
- t.rcov_opts << %[-o "coverage"]
24
- end
25
-
26
- RSpec::Core::RakeTask.new(:rspec) do |t|
27
- t.rcov = true
28
- t.rcov_opts = %w{--exclude osx\/objc,gems\/,spec\/,features\/}
29
- end
30
-
31
- desc "Run both specs and features to generate aggregated coverage"
32
- task :all do |t|
33
- rm "coverage.data" if File.exist?("coverage.data")
34
- Rake::Task["rcov:cucumber"].invoke
35
- Rake::Task["rcov:rspec"].invoke
19
+ if RUBY_VERSION.to_f == 1.8
20
+ namespace :rcov do
21
+ Cucumber::Rake::Task.new(:cucumber) do |t|
22
+ t.rcov = true
23
+ t.rcov_opts = %w{--exclude osx\/objc,gems\/,spec\/,features\/ --aggregate coverage.data}
24
+ t.rcov_opts << %[-o "coverage"]
25
+ end
26
+
27
+ RSpec::Core::RakeTask.new(:rspec) do |t|
28
+ t.rcov = true
29
+ t.rcov_opts = %w{--exclude osx\/objc,gems\/,spec\/,features\/}
30
+ end
31
+
32
+ desc "Run both specs and features to generate aggregated coverage"
33
+ task :all do |t|
34
+ rm "coverage.data" if File.exist?("coverage.data")
35
+ Rake::Task["rcov:cucumber"].invoke
36
+ Rake::Task["rcov:rspec"].invoke
37
+ end
36
38
  end
37
39
  end
38
40
 
39
-
40
41
  desc "Run rspec test"
41
42
  task :test do
42
43
  Rake::Task["test:rspec"].invoke
43
- Rake::Task["rcov:cucumber"].invoke
44
+ if RUBY_VERSION.to_f < 1.9
45
+ Rake::Task["rcov:cucumber"].invoke
46
+ else
47
+ Rake::Task["test:cucumber"].invoke
48
+ end
44
49
  end
45
50
  namespace :test do
46
51
  RSpec::Core::RakeTask.new(:rspec)
@@ -10,9 +10,10 @@ Feature: Processing a translation
10
10
  Then it succeeds
11
11
  And there should be 3 users in mongodb
12
12
  And there should be 3 posts in mongodb
13
- And the first post's user_id should be first user
13
+ And the "First Post" author should be Timmy
14
14
  And there should be 0 comments in mongodb
15
- And the first post should have 1 comment
15
+ And the post with title "First Post" should have 1 comment
16
+ And the post with title "Second Post" should have 2 comments
16
17
 
17
18
  Scenario: Processing while modifying embedding parent.
18
19
  Given a database exists
@@ -6,10 +6,17 @@ Then /^there should be (\d+) (.*) in mongodb$/ do |count, collection|
6
6
  DatabaseGenerator.mongo_connection.db[collection].count.should == count.to_i
7
7
  end
8
8
 
9
- Then /^the (first|sencond|third) (.+)'s (.+) should be (first|second|thrid) (.+)$/ do |collection_place, collection, field, target_place, target|
9
+ Then /^the (first|second|third) (.+)'s (.+) should be (first|second|thrid) (.+)$/ do |collection_place, collection, field, target_place, target|
10
10
  DatabaseGenerator.mongo_connection.db[collection.pluralize].find.to_a.send(collection_place.to_sym)[field].should == DatabaseGenerator.mongo_connection.db[target.pluralize].find.to_a.send(target_place)['_id']
11
11
  end
12
12
 
13
- Then /^the (first|sencond|third) (.+) should have (\d+) (.+)$/ do |collection_place, collection, count, target|
14
- DatabaseGenerator.mongo_connection.db[collection.pluralize].find.to_a.send(collection_place.to_sym)[target.pluralize].count == count
15
- end
13
+ Then /^the "(.+)" author should be (.+)$/ do |post_title, user_name|
14
+ post = DatabaseGenerator.mongo_connection.find_one(:posts, { title: post_title })
15
+ user = DatabaseGenerator.mongo_connection.find_one(:users, { first_name: user_name})
16
+ post['user_id'].should == user['_id']
17
+ end
18
+
19
+ Then /^the (.+) with (.+) "(.+)" should have (\d+) (.+)$/ do |collection, find_by, find_value, count, target|
20
+ DatabaseGenerator.mongo_connection.find_one(collection.pluralize, { find_by => find_value })[target.pluralize].count.should == count.to_i
21
+ end
22
+
@@ -1,4 +1,4 @@
1
- Then /^the (first|sencond|third) (.+)'s (.+) attribute should be (.+)$/ do |collection_place, collection_name, field, value|
1
+ Then /^the (first|second|third) (.+)'s (.+) attribute should be (.+)$/ do |collection_place, collection_name, field, value|
2
2
  DatabaseGenerator.mongo_connection.db[collection_name.pluralize].
3
3
  find.to_a.send(collection_place.to_sym)[field].to_s.should == value.to_s
4
4
  end
@@ -31,7 +31,7 @@ module Mongify
31
31
  #
32
32
  # ==== Options
33
33
  #
34
- # column "post_id", :integer, :referneces => :posts # Referenced columns need to be marked as such, this will mean that they will be updated
34
+ # column "post_id", :integer, :references => :posts # Referenced columns need to be marked as such, this will mean that they will be updated
35
35
  # # with the new BSON::ObjectID.
36
36
  # <b>NOTE: if you rename the table 'posts', you should set the :references to the new name</b>
37
37
  #
@@ -63,6 +63,7 @@ module Mongify
63
63
  row, parent_row = t.translate(row, target_row)
64
64
  parent_row ||= {}
65
65
  parent_row.delete("_id")
66
+ parent_row.delete(t.name.to_s)
66
67
  #puts "parent_row = #{parent_row.inspect}", "---"
67
68
  row.delete(t.embed_on)
68
69
  row.merge!(fetch_reference_ids(t, row))
@@ -26,7 +26,7 @@ module Mongify
26
26
  # table "comments", :embed_in => :posts, :on => :post_id do
27
27
  # column "id", :key
28
28
  # column "body", :text
29
- # column "post_id", :integer, :referneces => :posts
29
+ # column "post_id", :integer, :references => :posts
30
30
  # column "user_id", :integer, :references => :users
31
31
  # column "created_at", :datetime
32
32
  # column "updated_at", :datetime
@@ -1,4 +1,4 @@
1
1
  module Mongify
2
2
  # Mongify's Current Version Number
3
- VERSION = "0.2.0"
3
+ VERSION = "0.2.2"
4
4
  end
@@ -19,7 +19,7 @@ end
19
19
  table "comments", :embed_in => :posts, :on => :post_id do
20
20
  column "id", :key
21
21
  column "body", :text
22
- column "post_id", :integer, :referneces => :posts
22
+ column "post_id", :integer, :references => :posts
23
23
  column "user_id", :integer, :references => :users
24
24
  column "created_at", :datetime
25
25
  column "updated_at", :datetime
@@ -66,7 +66,7 @@ describe Mongify::Database::Column do
66
66
  @col.should_receive('references=').never
67
67
  Mongify::Database::Column.auto_detect(@col)
68
68
  end
69
- it "should not detect column referneces if column type is not :integer" do
69
+ it "should not detect column references if column type is not :integer" do
70
70
  @col.stub(:type).and_return(:string)
71
71
  @col.should_receive('references=').never
72
72
  Mongify::Database::Column.auto_detect(@col)
@@ -191,7 +191,7 @@ describe Mongify::Database::Table do
191
191
  before(:each) do
192
192
  @table = Mongify::Database::Table.new('users')
193
193
  @table.column "permission"
194
- @table.before_save do |row|
194
+ @table.before_save do |row, _|
195
195
  row.admin = row.delete('permission').to_i > 50
196
196
  end
197
197
  end
@@ -150,6 +150,12 @@ describe Mongify::Translation::Process do
150
150
  @no_sql_connection.should_receive(:update).with("posts", 500, {"$addToSet"=>{"preferences"=>{}}, "$set" => {"email"=>"true"}})
151
151
  @translation.send(:copy_embedded_tables)
152
152
  end
153
+ it "should not set embedded attribute in parent" do
154
+ @embed_table = mock(:translate => [{'first_name' => 'joe'}, {'email' => 'true', 'comments' => [{'first_name' => 'bob'}]}], :name => 'comments', :sql_name => 'comments', :embedded? => true, :embed_on => 'post_id', :embed_in => 'posts', :embedded_as_object? => false)
155
+ @translation.stub(:tables).and_return([@target_table, @embed_table])
156
+ @no_sql_connection.should_receive(:update).with("posts", 500, {"$addToSet" => {"comments" => {"first_name" => "joe"}}, "$set" => {"email" => "true"}})
157
+ @translation.send(:copy_embedded_tables)
158
+ end
153
159
  end
154
160
  end
155
161
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongify
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-06-25 00:00:00.000000000Z
12
+ date: 2012-09-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord
16
- requirement: &2153201840 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: 3.0.3
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2153201840
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 3.0.3
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: activesupport
27
- requirement: &2153201280 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ! '>='
@@ -32,10 +37,15 @@ dependencies:
32
37
  version: 3.0.3
33
38
  type: :runtime
34
39
  prerelease: false
35
- version_requirements: *2153201280
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: 3.0.3
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: mysql2
38
- requirement: &2153200840 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ! '>='
@@ -43,10 +53,15 @@ dependencies:
43
53
  version: '0'
44
54
  type: :runtime
45
55
  prerelease: false
46
- version_requirements: *2153200840
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: mongo
49
- requirement: &2153200200 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
67
  - - ! '>='
@@ -54,10 +69,15 @@ dependencies:
54
69
  version: 1.1.5
55
70
  type: :runtime
56
71
  prerelease: false
57
- version_requirements: *2153200200
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: 1.1.5
58
78
  - !ruby/object:Gem::Dependency
59
79
  name: bson_ext
60
- requirement: &2153199640 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
61
81
  none: false
62
82
  requirements:
63
83
  - - ! '>='
@@ -65,10 +85,15 @@ dependencies:
65
85
  version: 1.1.5
66
86
  type: :runtime
67
87
  prerelease: false
68
- version_requirements: *2153199640
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: 1.1.5
69
94
  - !ruby/object:Gem::Dependency
70
95
  name: highline
71
- requirement: &2153130820 !ruby/object:Gem::Requirement
96
+ requirement: !ruby/object:Gem::Requirement
72
97
  none: false
73
98
  requirements:
74
99
  - - ! '>='
@@ -76,10 +101,15 @@ dependencies:
76
101
  version: 1.6.1
77
102
  type: :runtime
78
103
  prerelease: false
79
- version_requirements: *2153130820
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: 1.6.1
80
110
  - !ruby/object:Gem::Dependency
81
111
  name: rspec
82
- requirement: &2153130320 !ruby/object:Gem::Requirement
112
+ requirement: !ruby/object:Gem::Requirement
83
113
  none: false
84
114
  requirements:
85
115
  - - ! '>='
@@ -87,10 +117,15 @@ dependencies:
87
117
  version: '2.0'
88
118
  type: :development
89
119
  prerelease: false
90
- version_requirements: *2153130320
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '2.0'
91
126
  - !ruby/object:Gem::Dependency
92
127
  name: rcov
93
- requirement: &2153129740 !ruby/object:Gem::Requirement
128
+ requirement: !ruby/object:Gem::Requirement
94
129
  none: false
95
130
  requirements:
96
131
  - - ! '>='
@@ -98,10 +133,15 @@ dependencies:
98
133
  version: 0.9.9
99
134
  type: :development
100
135
  prerelease: false
101
- version_requirements: *2153129740
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: 0.9.9
102
142
  - !ruby/object:Gem::Dependency
103
143
  name: cucumber
104
- requirement: &2153129180 !ruby/object:Gem::Requirement
144
+ requirement: !ruby/object:Gem::Requirement
105
145
  none: false
106
146
  requirements:
107
147
  - - ! '>='
@@ -109,10 +149,15 @@ dependencies:
109
149
  version: '0.10'
110
150
  type: :development
111
151
  prerelease: false
112
- version_requirements: *2153129180
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ! '>='
156
+ - !ruby/object:Gem::Version
157
+ version: '0.10'
113
158
  - !ruby/object:Gem::Dependency
114
159
  name: mocha
115
- requirement: &2153128680 !ruby/object:Gem::Requirement
160
+ requirement: !ruby/object:Gem::Requirement
116
161
  none: false
117
162
  requirements:
118
163
  - - ! '>='
@@ -120,10 +165,15 @@ dependencies:
120
165
  version: 0.9.8
121
166
  type: :development
122
167
  prerelease: false
123
- version_requirements: *2153128680
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: 0.9.8
124
174
  - !ruby/object:Gem::Dependency
125
175
  name: yard
126
- requirement: &2153128100 !ruby/object:Gem::Requirement
176
+ requirement: !ruby/object:Gem::Requirement
127
177
  none: false
128
178
  requirements:
129
179
  - - ! '>='
@@ -131,10 +181,15 @@ dependencies:
131
181
  version: 0.5.3
132
182
  type: :development
133
183
  prerelease: false
134
- version_requirements: *2153128100
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - ! '>='
188
+ - !ruby/object:Gem::Version
189
+ version: 0.5.3
135
190
  - !ruby/object:Gem::Dependency
136
191
  name: watchr
137
- requirement: &2153127600 !ruby/object:Gem::Requirement
192
+ requirement: !ruby/object:Gem::Requirement
138
193
  none: false
139
194
  requirements:
140
195
  - - ! '>='
@@ -142,10 +197,15 @@ dependencies:
142
197
  version: '0.6'
143
198
  type: :development
144
199
  prerelease: false
145
- version_requirements: *2153127600
200
+ version_requirements: !ruby/object:Gem::Requirement
201
+ none: false
202
+ requirements:
203
+ - - ! '>='
204
+ - !ruby/object:Gem::Version
205
+ version: '0.6'
146
206
  - !ruby/object:Gem::Dependency
147
207
  name: sqlite3-ruby
148
- requirement: &2153127020 !ruby/object:Gem::Requirement
208
+ requirement: !ruby/object:Gem::Requirement
149
209
  none: false
150
210
  requirements:
151
211
  - - ! '>='
@@ -153,10 +213,15 @@ dependencies:
153
213
  version: '1.3'
154
214
  type: :development
155
215
  prerelease: false
156
- version_requirements: *2153127020
216
+ version_requirements: !ruby/object:Gem::Requirement
217
+ none: false
218
+ requirements:
219
+ - - ! '>='
220
+ - !ruby/object:Gem::Version
221
+ version: '1.3'
157
222
  - !ruby/object:Gem::Dependency
158
223
  name: mysql
159
- requirement: &2153126440 !ruby/object:Gem::Requirement
224
+ requirement: !ruby/object:Gem::Requirement
160
225
  none: false
161
226
  requirements:
162
227
  - - ! '>='
@@ -164,10 +229,15 @@ dependencies:
164
229
  version: 2.8.1
165
230
  type: :development
166
231
  prerelease: false
167
- version_requirements: *2153126440
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ none: false
234
+ requirements:
235
+ - - ! '>='
236
+ - !ruby/object:Gem::Version
237
+ version: 2.8.1
168
238
  - !ruby/object:Gem::Dependency
169
239
  name: rake
170
- requirement: &2153126000 !ruby/object:Gem::Requirement
240
+ requirement: !ruby/object:Gem::Requirement
171
241
  none: false
172
242
  requirements:
173
243
  - - ! '>='
@@ -175,7 +245,12 @@ dependencies:
175
245
  version: '0'
176
246
  type: :development
177
247
  prerelease: false
178
- version_requirements: *2153126000
248
+ version_requirements: !ruby/object:Gem::Requirement
249
+ none: false
250
+ requirements:
251
+ - - ! '>='
252
+ - !ruby/object:Gem::Version
253
+ version: '0'
179
254
  description: Mongify allows you to map your sql data into a mongodb document database
180
255
  with a simple DSL.
181
256
  email:
@@ -279,9 +354,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
279
354
  - - ! '>='
280
355
  - !ruby/object:Gem::Version
281
356
  version: '0'
357
+ segments:
358
+ - 0
359
+ hash: -558955689900705187
282
360
  requirements: []
283
361
  rubyforge_project:
284
- rubygems_version: 1.8.5
362
+ rubygems_version: 1.8.23
285
363
  signing_key:
286
364
  specification_version: 3
287
365
  summary: Translate your SQL data to MongoDB with ease