discourse/db/migrate/20221205225450_migrate_side...

37 lines
998 B
Ruby

# frozen_string_literal: true
class MigrateSidebarSiteSettings < ActiveRecord::Migration[7.0]
def up
previous_enable_experimental_sidebar_hamburger =
DB.query_single(
"SELECT value FROM site_settings WHERE name = 'enable_experimental_sidebar_hamburger'",
)[
0
]
previous_enable_sidebar =
DB.query_single("SELECT value FROM site_settings WHERE name = 'enable_sidebar'")[0]
value =
case [previous_enable_experimental_sidebar_hamburger, previous_enable_sidebar]
when %w[t t], ["t", nil]
"sidebar"
when %w[t f]
"header dropdown"
when %w[f t], %w[f f], ["f", nil]
"legacy"
when [nil, "t"], [nil, "f"], [nil, nil]
nil
end
execute(<<~SQL) if value
INSERT INTO site_settings (name, data_type, value, created_at, updated_at)
VALUES ('navigation_menu', 8, '#{value}', now(), now())
SQL
end
def down
raise ActiveRecord::IrreversibleMigration
end
end