Fix server theme migration (#37810)
This commit is contained in:
parent
0279a52216
commit
d13d7b4566
@ -7,15 +7,12 @@ class MigrateDefaultThemeSetting < ActiveRecord::Migration[8.0]
|
|||||||
Setting.reset_column_information
|
Setting.reset_column_information
|
||||||
|
|
||||||
setting = Setting.find_by(var: 'theme')
|
setting = Setting.find_by(var: 'theme')
|
||||||
return unless setting.present? && setting.attributes['value'].present? && %w(mastodon-light contrast system).include?(setting.attributes['value'])
|
return unless setting.present? && setting.attributes['value'].present?
|
||||||
|
|
||||||
Setting.upsert(
|
theme = YAML.safe_load(setting.attributes['value'], permitted_classes: [ActiveSupport::HashWithIndifferentAccess, Symbol])
|
||||||
{
|
return unless %w(mastodon-light contrast system).include?(theme)
|
||||||
var: 'theme',
|
|
||||||
value: "--- default\n",
|
setting.update_column('value', "--- default\n")
|
||||||
},
|
|
||||||
unique_by: index_exists?(:settings, [:thing_type, :thing_id, :var]) ? [:thing_type, :thing_id, :var] : :var
|
|
||||||
)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def down; end
|
def down; end
|
||||||
|
|||||||
@ -154,6 +154,11 @@ namespace :tests do
|
|||||||
exit(1)
|
exit(1)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
unless Setting.theme == 'default'
|
||||||
|
puts 'Default theme setting not migrated as expected'
|
||||||
|
exit(1)
|
||||||
|
end
|
||||||
|
|
||||||
puts 'No errors found. Database state is consistent with a successful migration process.'
|
puts 'No errors found. Database state is consistent with a successful migration process.'
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -177,7 +182,8 @@ namespace :tests do
|
|||||||
(id, thing_type, thing_id, var, value, created_at, updated_at)
|
(id, thing_type, thing_id, var, value, created_at, updated_at)
|
||||||
VALUES
|
VALUES
|
||||||
(7, NULL, NULL, 'timeline_preview', E'--- false\n', now(), now()),
|
(7, NULL, NULL, 'timeline_preview', E'--- false\n', now(), now()),
|
||||||
(8, NULL, NULL, 'trends_as_landing_page', E'--- false\n', now(), now());
|
(8, NULL, NULL, 'trends_as_landing_page', E'--- false\n', now(), now()),
|
||||||
|
(9, NULL, NULL, 'theme', E'--- system', now(), now());
|
||||||
|
|
||||||
/* Doorkeeper records
|
/* Doorkeeper records
|
||||||
While the `read:me` scope was technically not valid in 3.3.0,
|
While the `read:me` scope was technically not valid in 3.3.0,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user