# frozen_string_literal: true require "migration/column_dropper" require "badge_posts_view_manager" class RemoveSuperfluousColumns < ActiveRecord::Migration[5.2] DROPPED_COLUMNS = { user_profiles: %i[card_image_badge_id], categories: %i[logo_url background_url suppress_from_homepage], groups: %i[visible public alias_level], theme_fields: %i[target], user_stats: %i[first_topic_unread_at], topics: %i[ auto_close_at auto_close_user_id auto_close_started_at auto_close_based_on_last_post auto_close_hours inappropriate_count bookmark_count off_topic_count illegal_count notify_user_count last_unread_at vote_count ], users: %i[ email email_always mailing_list_mode email_digests email_direct email_private_messages external_links_in_new_tab enable_quoting dynamic_favicon disable_jump_reply edit_history_public automatically_unpin_topics digest_after_days auto_track_topics_after_msecs new_topic_duration_minutes last_redirected_to_top_at auth_token auth_token_updated_at blocked silenced trust_level_locked ], user_auth_tokens: %i[legacy], user_options: %i[theme_key], themes: %i[key], email_logs: %i[topic_id reply_key skipped skipped_reason], posts: %i[vote_count], } def up BadgePostsViewManager.drop! DROPPED_COLUMNS.each { |table, columns| Migration::ColumnDropper.execute_drop(table, columns) } DB.exec "DROP FUNCTION IF EXISTS first_unread_topic_for(int)" BadgePostsViewManager.create! end def down raise ActiveRecord::IrreversibleMigration end end