diff --git a/db/migrate/20110330175950_tag_uniqueness.rb b/db/migrate/20110330175950_tag_uniqueness.rb
index df2c676918f6ac558777212efadac9c038e83bc8..bd4a4cd5571233baa88fdf5eac4a7434344a975e 100644
--- a/db/migrate/20110330175950_tag_uniqueness.rb
+++ b/db/migrate/20110330175950_tag_uniqueness.rb
@@ -1,17 +1,18 @@
 class TagUniqueness < ActiveRecord::Migration
   def self.delete_duplicate_taggings
     duplicate_rows = execute <<SQL
-      SELECT COUNT(t.taggable_id), t.taggable_id, t.taggable_type, t.tag_id
+      SELECT COUNT(t.taggable_id), t.taggable_id, t.taggable_type, t.tag_id FROM taggings AS t
         GROUP BY t.taggable_id, t.taggable_type, t.tag_id
           HAVING COUNT(*)>1;
 SQL
     duplicate_rows.each do |row|
       execute <<SQL
         DELETE FROM taggings
-        WHERE taggings.taggable_id = #{row[1]} AND taggings.taggable_type = #{row[2]} AND taggings.tag_id = #{row[3]}
+        WHERE taggings.taggable_id = #{row[1]} AND taggings.taggable_type = '#{row[2]}' AND taggings.tag_id = #{row[3]}
         LIMIT #{row[0]-1}
 SQL
     end
+  end
   def self.up
     delete_duplicate_taggings
     add_index :taggings, [:taggable_id, :taggable_type, :tag_id], :unique => true, :name => 'index_taggings_uniquely'
diff --git a/db/schema.rb b/db/schema.rb
index f2d99acedd9b63925caaa5a736945213297fc6c0..578cee0b6e343fdce0ce1854a4228ce1d8d2aa13 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -328,8 +328,8 @@ ActiveRecord::Schema.define(:version => 20110330175950) do
   end
 
   add_index "taggings", ["tag_id"], :name => "index_taggings_on_tag_id"
-  add_index "taggings", ["taggable_id", "taggable_type", "context", "tag_id"], :name => "index_taggings_uniquely", :unique => true
   add_index "taggings", ["taggable_id", "taggable_type", "context"], :name => "index_taggings_on_taggable_id_and_taggable_type_and_context"
+  add_index "taggings", ["taggable_id", "taggable_type", "tag_id"], :name => "index_taggings_uniquely", :unique => true
 
   create_table "tags", :force => true do |t|
     t.string "name"