about summary refs log tree commit diff
path: root/db/migrate
diff options
context:
space:
mode:
authorpluralcafe-docker <git@plural.cafe>2018-11-02 00:56:08 +0000
committerpluralcafe-docker <git@plural.cafe>2018-11-02 00:56:08 +0000
commit521df92d8ccdc715b3ee9e1ccea63fbd6810f5c5 (patch)
tree3726f4f70214171ab56fc0f8803d669ce4c9efe0 /db/migrate
parent431c09bfbe07715a2a88846864179a419d72ab59 (diff)
parent34209c0340ca6b7c61de964a17f5f3fe2e0f7c7b (diff)
Merge branch 'glitch'
Diffstat (limited to 'db/migrate')
-rw-r--r--db/migrate/20181024224956_migrate_account_conversations.rb30
1 files changed, 6 insertions, 24 deletions
diff --git a/db/migrate/20181024224956_migrate_account_conversations.rb b/db/migrate/20181024224956_migrate_account_conversations.rb
index 47f7375ba..b718f9e1d 100644
--- a/db/migrate/20181024224956_migrate_account_conversations.rb
+++ b/db/migrate/20181024224956_migrate_account_conversations.rb
@@ -14,17 +14,15 @@ class MigrateAccountConversations < ActiveRecord::Migration[5.2]
       sleep 1
     end
 
-    total        = estimate_rows(local_direct_statuses) + estimate_rows(notifications_about_direct_statuses)
-    migrated     = 0
-    started_time = Time.zone.now
-    last_time    = Time.zone.now
+    migrated  = 0
+    last_time = Time.zone.now
 
     local_direct_statuses.includes(:account, mentions: :account).find_each do |status|
       AccountConversation.add_status(status.account, status)
       migrated += 1
 
       if Time.zone.now - last_time > 1
-        say_progress(migrated, total, started_time)
+        say_progress(migrated)
         last_time = Time.zone.now
       end
     end
@@ -34,7 +32,7 @@ class MigrateAccountConversations < ActiveRecord::Migration[5.2]
       migrated += 1
 
       if Time.zone.now - last_time > 1
-        say_progress(migrated, total, started_time)
+        say_progress(migrated)
         last_time = Time.zone.now
       end
     end
@@ -45,24 +43,8 @@ class MigrateAccountConversations < ActiveRecord::Migration[5.2]
 
   private
 
-  def estimate_rows(query)
-    result = exec_query("EXPLAIN #{query.to_sql}").first
-    result['QUERY PLAN'].scan(/ rows=([\d]+)/).first&.first&.to_i || 0
-  end
-
-  def say_progress(migrated, total, started_time)
-    status = "Migrated #{migrated} rows"
-
-    percentage = 100.0 * migrated / total
-    status += " (~#{sprintf('%.2f', percentage)}%, "
-
-    remaining_time = (100.0 - percentage) * (Time.zone.now - started_time) / percentage
-
-    status += "#{(remaining_time / 60).to_i}:"
-    status += sprintf('%02d', remaining_time.to_i % 60)
-    status += ' remaining)'
-
-    say status, true
+  def say_progress(migrated)
+    say "Migrated #{migrated} rows", true
   end
 
   def local_direct_statuses