Fix server theme migration (#37810)
Some checks are pending
Check i18n / check-i18n (push) Waiting to run
Chromatic / Check for relevant changes (push) Waiting to run
Chromatic / Run Chromatic (push) Blocked by required conditions
CodeQL / Analyze (actions) (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (ruby) (push) Waiting to run
Check formatting / lint (push) Waiting to run
JavaScript Linting / lint (push) Waiting to run
Ruby Linting / lint (push) Waiting to run
JavaScript Testing / test (push) Waiting to run
Historical data migration test / test (14-alpine) (push) Waiting to run
Historical data migration test / test (15-alpine) (push) Waiting to run
Historical data migration test / test (16-alpine) (push) Waiting to run
Historical data migration test / test (17-alpine) (push) Waiting to run
Ruby Testing / build (production) (push) Waiting to run
Ruby Testing / build (test) (push) Waiting to run
Ruby Testing / test (.ruby-version) (push) Blocked by required conditions
Ruby Testing / test (3.2) (push) Blocked by required conditions
Ruby Testing / test (3.3) (push) Blocked by required conditions
Ruby Testing / End to End testing (.ruby-version) (push) Blocked by required conditions
Ruby Testing / End to End testing (3.2) (push) Blocked by required conditions
Ruby Testing / End to End testing (3.3) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, docker.elastic.co/elasticsearch/elasticsearch:8.10.2) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, opensearchproject/opensearch:2) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (3.2, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (3.3, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Blocked by required conditions

This commit is contained in:
Claire
2026-02-10 21:53:43 +01:00
committed by GitHub
parent 0279a52216
commit d13d7b4566
2 changed files with 12 additions and 9 deletions

View File

@@ -7,15 +7,12 @@ class MigrateDefaultThemeSetting < ActiveRecord::Migration[8.0]
Setting.reset_column_information
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(
{
var: 'theme',
value: "--- default\n",
},
unique_by: index_exists?(:settings, [:thing_type, :thing_id, :var]) ? [:thing_type, :thing_id, :var] : :var
)
theme = YAML.safe_load(setting.attributes['value'], permitted_classes: [ActiveSupport::HashWithIndifferentAccess, Symbol])
return unless %w(mastodon-light contrast system).include?(theme)
setting.update_column('value', "--- default\n")
end
def down; end

View File

@@ -154,6 +154,11 @@ namespace :tests do
exit(1)
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.'
end
@@ -177,7 +182,8 @@ namespace :tests do
(id, thing_type, thing_id, var, value, created_at, updated_at)
VALUES
(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
While the `read:me` scope was technically not valid in 3.3.0,