diff options
Diffstat (limited to 'db')
-rw-r--r-- | db/migrate/20181024224956_migrate_account_conversations.rb | 30 |
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 |