discourse/migrations/lib/database/schema/validation/plugin_config_validator.rb
Gerhard Schlager 17ba19c7ae REFACTOR: Code generator for migrations IntemerdiateDB
* Splits the existing script into multiple classes
* Adds command for generating IntermediateDB schema (`migrations/bin/cli schema generate`)
* Changes the syntax of the IntermediateDB schema config
* Adds validation for the schema config
* It uses YAML schema aka JSON schema to validate the config file
* It generates the SQL schema file and Ruby classes for storing data in the IntermediateDB
2025-04-07 17:22:36 +02:00

28 lines
821 B
Ruby

# frozen_string_literal: true
module Migrations::Database::Schema::Validation
class PluginConfigValidator < BaseValidator
def initialize(config, errors)
super(config, errors, nil)
end
def validate
all_plugin_names = Discourse.plugins.map(&:name)
configured_plugin_names = @config[:plugins]
if (additional_plugins = all_plugin_names - configured_plugin_names).any?
@errors << I18n.t(
"schema.validator.plugins.additional_installed",
plugin_names: sort_and_join(additional_plugins),
)
end
if (missing_plugins = configured_plugin_names - all_plugin_names).any?
@errors << I18n.t(
"schema.validator.plugins.not_installed",
plugin_names: sort_and_join(missing_plugins),
)
end
end
end
end