diff --git a/lib/data_conversion/import_to_mysql.rb b/lib/data_conversion/import_to_mysql.rb index 6e62c2dc1..c0da3bc36 100644 --- a/lib/data_conversion/import_to_mysql.rb +++ b/lib/data_conversion/import_to_mysql.rb @@ -40,8 +40,8 @@ module DataConversion process_raw_people process_raw_contacts process_raw_aspect_memberships - #invitations - #requests + process_raw_invitations + process_raw_requests #profiles #posts #post_visibilities @@ -120,6 +120,43 @@ module DataConversion SQL log "Imported #{AspectMembership.count} aspect_memberships." end + def process_raw_invitations + log "Importing invitations to main table..." + Invitation.connection.execute <<-SQL + INSERT INTO invitations + SELECT m_inv.id, + m_inv.message, + senders.id, + recipients.id, + aspects.id, + m_inv.created_at, + m_inv.updated_at, + m_inv.mongo_id + FROM mongo_invitations AS m_inv + INNER JOIN users AS senders ON m_inv.sender_mongo_id = senders.mongo_id + INNER JOIN users AS recipients ON m_inv.recipient_mongo_id = recipients.mongo_id + INNER JOIN aspects ON m_inv.aspect_mongo_id = aspects.mongo_id + SQL + log "Imported #{Invitation.count} invitations." + end + def process_raw_requests + log "Importing requests to main table..." + Request.connection.execute <<-SQL + INSERT INTO requests + SELECT m_r.id, + senders.id, + recipients.id, + aspects.id, + m_r.created_at, + m_r.updated_at, + m_r.mongo_id + FROM mongo_requests AS m_r + INNER JOIN people AS senders ON m_r.sender_mongo_id = senders.mongo_id + INNER JOIN people AS recipients ON m_r.recipient_mongo_id = recipients.mongo_id + LEFT JOIN aspects ON m_r.aspect_mongo_id = aspects.mongo_id + SQL + log "Imported #{Request.count} requests." + end def process_raw_services log "Importing services to main table..." Service.connection.execute <<-SQL diff --git a/spec/lib/data_conversion/import_to_mysql_spec.rb b/spec/lib/data_conversion/import_to_mysql_spec.rb index 6a9b13680..19dd1f724 100644 --- a/spec/lib/data_conversion/import_to_mysql_spec.rb +++ b/spec/lib/data_conversion/import_to_mysql_spec.rb @@ -118,6 +118,9 @@ describe DataConversion::ImportToMysql do copy_fixture_for("users") @migrator.import_raw_users @migrator.process_raw_users + copy_fixture_for("aspects") + @migrator.import_raw_aspects + @migrator.process_raw_aspects copy_fixture_for("invitations") @migrator.import_raw_invitations end @@ -145,7 +148,40 @@ describe DataConversion::ImportToMysql do invitation.recipient_id.should == User.where(:mongo_id => invitation.recipient_mongo_id).first.id end end + describe "requests" do + before do + copy_fixture_for("people") + @migrator.import_raw_people + @migrator.process_raw_people + copy_fixture_for("users") + @migrator.import_raw_users + @migrator.process_raw_users + copy_fixture_for("aspects") + @migrator.import_raw_aspects + @migrator.process_raw_aspects + copy_fixture_for("requests") + @migrator.import_raw_requests + end + it "imports data into the mongo_requests table" do + Mongo::Request.count.should == 2 + Request.count.should == 0 + @migrator.import_raw_requests + Request.count.should == 2 + end + + it "imports all the columns" do + @migrator.process_raw_requests + request = Request.first + request.mongo_id.should == "4d2657eacc8cb4603300001b" + end + it 'sets the relation columns' do + @migrator.process_raw_requests + request = Request.first + request.sender_id.should == Person.where(:mongo_id => request.sender_mongo_id).first.id + request.recipient_id.should == Person.where(:mongo_id => request.recipient_mongo_id).first.id + end + end describe "people" do before do copy_fixture_for("users")