diff --git a/app/services/system_settings_service.py b/app/services/system_settings_service.py index 8e8f5e42..6d188116 100644 --- a/app/services/system_settings_service.py +++ b/app/services/system_settings_service.py @@ -641,7 +641,8 @@ class BotConfigurationService: @classmethod def _is_env_override(cls, key: str) -> bool: - return key in cls._env_override_keys + # Отключаем приоритет env над БД - теперь БД имеет приоритет + return False @classmethod def _format_numeric_with_unit(cls, key: str, value: Union[int, float]) -> Optional[str]: @@ -756,7 +757,7 @@ class BotConfigurationService: _definitions: Dict[str, SettingDefinition] = {} _original_values: Dict[str, Any] = settings.model_dump() _overrides_raw: Dict[str, Optional[str]] = {} - _env_override_keys: set[str] = set(ENV_OVERRIDE_KEYS) + _env_override_keys: set[str] = set() # Отключаем приоритет env над БД - теперь БД имеет приоритет _callback_tokens: Dict[str, str] = {} _token_to_key: Dict[str, str] = {} _choice_tokens: Dict[str, Dict[Any, str]] = {} @@ -1177,12 +1178,6 @@ class BotConfigurationService: overrides[row.key] = row.value for key, raw_value in overrides.items(): - if cls._is_env_override(key): - logger.debug( - "Пропускаем настройку %s из БД: используется значение из окружения", - key, - ) - continue try: parsed_value = cls.deserialize_value(key, raw_value) except Exception as error: @@ -1302,15 +1297,8 @@ class BotConfigurationService: raw_value = cls.serialize_value(key, value) await upsert_system_setting(db, key, raw_value) - if cls._is_env_override(key): - logger.info( - "Настройка %s сохранена в БД, но не применена: значение задаётся через окружение", - key, - ) - cls._overrides_raw.pop(key, None) - else: - cls._overrides_raw[key] = raw_value - cls._apply_to_settings(key, value) + cls._overrides_raw[key] = raw_value + cls._apply_to_settings(key, value) if key in {"WEB_API_DEFAULT_TOKEN", "WEB_API_DEFAULT_TOKEN_NAME"}: await cls._sync_default_web_api_token() @@ -1328,26 +1316,14 @@ class BotConfigurationService: await delete_system_setting(db, key) cls._overrides_raw.pop(key, None) - if cls._is_env_override(key): - logger.info( - "Настройка %s сброшена в БД, используется значение из окружения", - key, - ) - else: - original = cls.get_original_value(key) - cls._apply_to_settings(key, original) + original = cls.get_original_value(key) + cls._apply_to_settings(key, original) if key in {"WEB_API_DEFAULT_TOKEN", "WEB_API_DEFAULT_TOKEN_NAME"}: await cls._sync_default_web_api_token() @classmethod def _apply_to_settings(cls, key: str, value: Any) -> None: - if cls._is_env_override(key): - logger.debug( - "Пропуск применения настройки %s: значение задано через окружение", - key, - ) - return try: setattr(settings, key, value) if key in {