37 lines
1003 B
Ruby
37 lines
1003 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 ['t', 't'], ['t', nil]
|
||
|
"sidebar"
|
||
|
when ['t', 'f']
|
||
|
"header dropdown"
|
||
|
when ['f', 't'], ['f', 'f'], ['f', nil]
|
||
|
"legacy"
|
||
|
when [nil, 't'], [nil, 'f'], [nil, nil]
|
||
|
nil
|
||
|
end
|
||
|
|
||
|
if value
|
||
|
execute(<<~SQL)
|
||
|
INSERT INTO site_settings (name, data_type, value, created_at, updated_at)
|
||
|
VALUES ('navigation_menu', 8, '#{value}', now(), now())
|
||
|
SQL
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def down
|
||
|
raise ActiveRecord::IrreversibleMigration
|
||
|
end
|
||
|
end
|