2023-07-12 09:47:08 +02:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2020-04-15 20:33:24 +02:00
|
|
|
class MigrateUnavailableInboxes < ActiveRecord::Migration[5.2]
|
|
|
|
disable_ddl_transaction!
|
|
|
|
|
|
|
|
def up
|
2024-09-02 16:19:55 +02:00
|
|
|
redis = RedisConnection.pool.checkout
|
2023-03-04 16:38:28 +01:00
|
|
|
urls = redis.smembers('unavailable_inboxes')
|
2020-04-15 20:33:24 +02:00
|
|
|
|
2023-05-23 10:49:12 +02:00
|
|
|
hosts = urls.filter_map do |url|
|
2020-04-16 08:03:24 +02:00
|
|
|
Addressable::URI.parse(url).normalized_host
|
2023-05-23 10:49:12 +02:00
|
|
|
end.uniq
|
2020-04-16 08:03:24 +02:00
|
|
|
|
|
|
|
UnavailableDomain.delete_all
|
|
|
|
|
|
|
|
hosts.each do |host|
|
2020-04-15 20:33:24 +02:00
|
|
|
UnavailableDomain.create(domain: host)
|
|
|
|
end
|
|
|
|
|
2023-03-04 16:38:28 +01:00
|
|
|
redis.del(*(['unavailable_inboxes'] + redis.keys('exhausted_deliveries:*')))
|
2020-04-15 20:33:24 +02:00
|
|
|
end
|
|
|
|
|
|
|
|
def down; end
|
|
|
|
end
|