From ff1cad6e638511181281b6eeea190ec84ab3648f Mon Sep 17 00:00:00 2001 From: Raphael Date: Wed, 5 Jan 2011 17:38:00 -0800 Subject: [PATCH] raw import for requests --- app/models/mongo.rb | 2 +- .../20110105051803_create_import_tables.rb | 11 ++++++++++ db/schema.rb | 13 ++++++++++++ lib/data_conversion/import_to_mysql.rb | 8 +++++++ .../data_conversion/import_to_mysql_spec.rb | 21 +++++++++++++++++++ 5 files changed, 54 insertions(+), 1 deletion(-) diff --git a/app/models/mongo.rb b/app/models/mongo.rb index 9fc76b5f9..5d746260c 100644 --- a/app/models/mongo.rb +++ b/app/models/mongo.rb @@ -14,7 +14,7 @@ module Mongo #Post? class PostVisibility < ActiveRecord::Base; end #class Profile < ActiveRecord::Base; end - #class Request < ActiveRecord::Base; end + class Request < ActiveRecord::Base; end #Service? #StatusMessage? class User < ActiveRecord::Base; end diff --git a/db/migrate/20110105051803_create_import_tables.rb b/db/migrate/20110105051803_create_import_tables.rb index 84c5bbd89..cc38317de 100644 --- a/db/migrate/20110105051803_create_import_tables.rb +++ b/db/migrate/20110105051803_create_import_tables.rb @@ -48,6 +48,17 @@ class CreateImportTables < ActiveRecord::Migration add_index :mongo_post_visibilities, :aspect_mongo_id add_index :mongo_post_visibilities, :post_mongo_id + create_table :mongo_requests do |t| + t.string :mongo_id + t.string :sender_mongo_id + t.string :recipient_mongo_id + t.string :aspect_mongo_id + t.timestamps + end + add_index :mongo_requests, :sender_mongo_id + add_index :mongo_requests, :recipient_mongo_id + add_index :mongo_requests, [:sender_mongo_id, :recipient_mongo_id], :unique => true + create_table :mongo_users do |t| t.string :mongo_id t.string :username diff --git a/db/schema.rb b/db/schema.rb index c803f526d..9dab91981 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -128,6 +128,19 @@ ActiveRecord::Schema.define(:version => 20110105051803) do add_index "mongo_post_visibilities", ["aspect_mongo_id"], :name => "index_mongo_post_visibilities_on_aspect_mongo_id" add_index "mongo_post_visibilities", ["post_mongo_id"], :name => "index_mongo_post_visibilities_on_post_mongo_id" + create_table "mongo_requests", :force => true do |t| + t.string "mongo_id" + t.string "sender_mongo_id" + t.string "recipient_mongo_id" + t.string "aspect_mongo_id" + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "mongo_requests", ["recipient_mongo_id"], :name => "index_mongo_requests_on_recipient_mongo_id" + add_index "mongo_requests", ["sender_mongo_id", "recipient_mongo_id"], :name => "index_mongo_requests_on_sender_mongo_id_and_recipient_mongo_id", :unique => true + add_index "mongo_requests", ["sender_mongo_id"], :name => "index_mongo_requests_on_sender_mongo_id" + create_table "mongo_users", :force => true do |t| t.string "mongo_id" t.string "username" diff --git a/lib/data_conversion/import_to_mysql.rb b/lib/data_conversion/import_to_mysql.rb index f15addf05..70fc77dd7 100644 --- a/lib/data_conversion/import_to_mysql.rb +++ b/lib/data_conversion/import_to_mysql.rb @@ -61,6 +61,14 @@ OPTS (aspect_mongo_id, post_mongo_id) SQL end + def import_raw_requests + Mongo::Aspect.connection.execute <<-SQL + #{load_string("requests")} + #{infile_opts} + (mongo_id, recipient_mongo_id, sender_mongo_id, aspect_mongo_id) + SQL + end + end end diff --git a/spec/lib/data_conversion/import_to_mysql_spec.rb b/spec/lib/data_conversion/import_to_mysql_spec.rb index 7d44db453..638f0aef6 100644 --- a/spec/lib/data_conversion/import_to_mysql_spec.rb +++ b/spec/lib/data_conversion/import_to_mysql_spec.rb @@ -118,6 +118,27 @@ describe DataConversion::ImportToMysql do end end + describe "requests" do + before do + copy_fixture_for("requests") + end + + it "imports data into the mongo_requests table" do + Mongo::Request.count.should == 0 + @migrator.import_raw_requests + Mongo::Request.count.should == 8 + end + + it "imports all the columns" do + @migrator.import_raw_requests + request = Mongo::Request.first + request.mongo_id.should == "4d091791cc8cb40f14000002" + request.recipient_mongo_id.should =="4d090bd1cc8cb4054e000297" + request.sender_mongo_id.should == "4d0916c1cc8cb40e93000003" + request.aspect_mongo_id.should == '' + end + end + describe "users" do before do copy_fixture_for("users")