diff options
author | Thibaut Girka <thib@sitedethib.com> | 2018-10-31 10:08:36 +0100 |
---|---|---|
committer | Thibaut Girka <thib@sitedethib.com> | 2018-10-31 10:08:36 +0100 |
commit | 75b48dc1771f805f43c9dd2d55fc32ccf8951d68 (patch) | |
tree | 28f8a4165549a8406abf791a31d05f53a73f051f /db | |
parent | 2b2facbbdfb7c0b53e38048e932143d592af401e (diff) | |
parent | ba06a5f485d305bc917506828fd5cb20b3f0c226 (diff) |
Merge branch 'master' into glitch-soc/merge-upstream
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 |