discourse/db/migrate/20180813074843_add_component_to_themes.rb
Sam Saffron 30990006a9 DEV: enable frozen string literal on all files
This reduces chances of errors where consumers of strings mutate inputs
and reduces memory usage of the app.

Test suite passes now, but there may be some stuff left, so we will run
a few sites on a branch prior to merging
2019-05-13 09:31:32 +08:00

29 lines
710 B
Ruby

# frozen_string_literal: true
class AddComponentToThemes < ActiveRecord::Migration[5.2]
def up
add_column :themes, :component, :boolean, null: false, default: false
execute("
UPDATE themes
SET component = true, color_scheme_id = NULL, user_selectable = false
WHERE id IN (SELECT child_theme_id FROM child_themes)
")
execute("
UPDATE site_settings
SET value = -1
WHERE name = 'default_theme_id' AND value::integer IN (SELECT id FROM themes WHERE component)
")
execute("
DELETE FROM child_themes
WHERE parent_theme_id IN (SELECT id FROM themes WHERE component)
")
end
def down
remove_column :themes, :component
end
end