diff --git a/models/site.rb b/models/site.rb index 5789f98b..5a7b67bf 100644 --- a/models/site.rb +++ b/models/site.rb @@ -445,6 +445,8 @@ class Site < Sequel::Model def before_destroy DB.transaction { + self.domain = nil + self.save_changes validate: false owner.end_supporter_membership! if parent? FileUtils.mkdir_p File.join(DELETED_SITES_ROOT, self.class.sharding_dir(username)) @@ -460,6 +462,10 @@ class Site < Sequel::Model } end + def after_destroy + update_redis_proxy_record + end + def undelete! return false unless Dir.exist? deleted_files_path FileUtils.mkdir_p File.join(SITE_FILES_ROOT, self.class.sharding_dir(username)) @@ -921,16 +927,18 @@ class Site < Sequel::Model unless user_record.empty? user_record[:domain] = values[:domain] $redis_proxy.mapped_hmset "u-#{username}", user_record - $redis_proxy.del "u-#{@old_username}" if @old_username end unless domain_record.empty? $redis_proxy.mapped_hmset "d-#{values[:domain]}", domain_record $redis_proxy.mapped_hmset "d-www.#{values[:domain]}", domain_record - $redis_proxy.del "d-#{@old_domain}" if @old_domain - $redis_proxy.del "d-www.#{@old_domain}" if @old_domain end + $redis_proxy.del "u-#{@old_username}" if @old_username + $redis_proxy.del "d-#{@old_domain}" if @old_domain + $redis_proxy.del "d-www.#{@old_domain}" if @old_domain + $redis_proxy.del "u-#{username}" if is_deleted + true end