From e2ae3f0b4516220761a4adc2b8432eb4558a1598 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9gis=20Hanol?= <regis@hanol.fr>
Date: Tue, 15 Oct 2013 11:36:27 +0200
Subject: [PATCH] faster migration by avoiding to query the db for local
 thumbnails

---
 ...03951_backfill_post_upload_reverse_index.rb | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/db/migrate/20131014203951_backfill_post_upload_reverse_index.rb b/db/migrate/20131014203951_backfill_post_upload_reverse_index.rb
index 0f2771bf6..b578d7887 100644
--- a/db/migrate/20131014203951_backfill_post_upload_reverse_index.rb
+++ b/db/migrate/20131014203951_backfill_post_upload_reverse_index.rb
@@ -22,7 +22,7 @@ class BackfillPostUploadReverseIndex < ActiveRecord::Migration
       url = url[index..-1]
     end
     # filter out non-uploads
-    return unless url.starts_with?(local_base_url) || url.starts_with?(s3_base_url)
+    return unless is_local?(url) || is_on_s3?(url)
     # update the reverse index
     execute "INSERT INTO post_uploads (upload_id, post_id)
              SELECT u.id, #{post_id}
@@ -35,8 +35,24 @@ class BackfillPostUploadReverseIndex < ActiveRecord::Migration
     @local_base_url ||= "/uploads/#{RailsMultisite::ConnectionManagement.current_db}"
   end
 
+  def local_optimized_base_url
+    @local_optimized_base_url ||= "#{local_base_url}/_optimized/"
+  end
+
   def s3_base_url
     @s3_base_url ||= "//#{SiteSetting.s3_upload_bucket.downcase}.s3.amazonaws.com"
   end
 
+  def is_local?(url)
+    url.starts_with?(local_base_url) && !is_local_thumbnail?(url)
+  end
+
+  def is_local_thumbnail?(url)
+    url.starts_with?(local_optimized_base_url)
+  end
+
+  def is_on_s3?(url)
+    url.starts_with?(s3_base_url)
+  end
+
 end