71 lines
1.7 KiB
Ruby
71 lines
1.7 KiB
Ruby
# 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
|