cartodb-4.42/script/20200922_do_datasets_remove_redis_fields.rb
2024-04-06 05:25:13 +00:00

39 lines
1.2 KiB
Ruby

#!/usr/bin/env ruby
# [RAILS_ENV=staging] bundle exec rails runner script/20200922_do_datasets_remove_redis_fields.rb <username>
if ARGV.length != 1 then
puts "*** Please introduce the target username (or --all to update them all) ***"
exit
end
username = (ARGV[0] != '--all')? ARGV[0] : '*'
puts "Un-update user: #{username}..."
def delete_table(table_id)
begin
Carto::UserTable.find(table_id).visualization.destroy
rescue
end
end
$users_metadata.keys("do:#{username}:datasets").each do |k|
user = User.where(username: username).first
datasets = $users_metadata.hget(k, :bq)
datasets = JSON.parse(datasets)
oldy_datasets = datasets.map do |dataset|
oldy_dataset = dataset
if dataset['sync_status'].present? then
# Note this will not change the user's quota, so be carefull if you have to execute this script multiple times
delete_table(dataset['sync_table_id']) unless !dataset['sync_table_id']
oldy_dataset = {
dataset_id: dataset['dataset_id'],
expires_at: dataset['expires_at']
}
end
puts "Un-update: #{dataset['dataset_id']} for #{username}"
oldy_dataset
end
$users_metadata.hmset(k, :bq, oldy_datasets.to_json)
end