From 3615c448d29a229ec8f0f6c612efe6464b4d72a5 Mon Sep 17 00:00:00 2001 From: danielgrippi Date: Tue, 29 Mar 2011 12:41:55 -0700 Subject: [PATCH] fixed migration, added deletion of unused post_visibilities --- ...328202414_post_visibilities_on_contacts.rb | 38 ++++++++++++++----- db/schema.rb | 6 ++- 2 files changed, 32 insertions(+), 12 deletions(-) diff --git a/db/migrate/20110328202414_post_visibilities_on_contacts.rb b/db/migrate/20110328202414_post_visibilities_on_contacts.rb index 2d7182501..cf2c2f731 100644 --- a/db/migrate/20110328202414_post_visibilities_on_contacts.rb +++ b/db/migrate/20110328202414_post_visibilities_on_contacts.rb @@ -8,16 +8,9 @@ class PostVisibilitiesOnContacts < ActiveRecord::Migration WHERE people.owner_id = aspects.user_id SQL - ids = execute("SELECT pv.id #{where_clause}").to_a + execute("INSERT into aspect_visibilities SELECT pv.id, pv.post_id, pv.aspect_id, pv.created_at, pv.updated_at #{where_clause}") - unless ids.blank? - execute("INSERT into aspect_visibilities SELECT pv.post_id, pv.aspect_id #{where_clause}") - - execute <1; +SQL + duplicate_rows.each do |row| + count = row.first + contact_id = row[1] + post_id = row.last + + execute < false t.integer :aspect_id, :null => false + t.timestamps end add_index :aspect_visibilities, [:post_id, :aspect_id], :unique => true add_foreign_key :aspect_visibilities, :aspects, :dependent => :delete add_foreign_key :aspect_visibilities, :posts, :dependent => :delete add_column :post_visibilities, :contact_id, :integer, :null => false - add_index :post_visibilities, [:contact_id, :post_id], :unique => true move_author_pvs_to_aspect_pvs set_pv_contact_ids remove_index :post_visibilities, [:aspect_id, :post_id] remove_column :post_visibilities, :aspect_id + + delete_duplicate_pvs + + add_index :post_visibilities, [:contact_id, :post_id], :unique => true add_foreign_key :post_visibilities, :contacts, :dependent => :delete add_foreign_key :post_visibilities, :posts, :dependent => :delete end diff --git a/db/schema.rb b/db/schema.rb index adf7fd928..9a380f0cb 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -24,8 +24,10 @@ ActiveRecord::Schema.define(:version => 20110328202414) do add_index "aspect_memberships", ["contact_id"], :name => "index_aspect_memberships_on_contact_id" create_table "aspect_visibilities", :force => true do |t| - t.integer "post_id", :null => false - t.integer "aspect_id", :null => false + t.integer "post_id", :null => false + t.integer "aspect_id", :null => false + t.datetime "created_at" + t.datetime "updated_at" end add_index "aspect_visibilities", ["aspect_id"], :name => "aspect_visibilities_aspect_id_fk"