mirror of
https://github.com/open-webui/open-webui
synced 2024-11-28 06:53:14 +00:00
Update config.py
This commit is contained in:
parent
6bbb755997
commit
9bcbf5e9b3
@ -47,7 +47,7 @@ def run_migrations():
|
||||
from alembic import command
|
||||
from alembic.config import Config
|
||||
|
||||
alembic_cfg = Config(BACKEND_DIR / "alembic.ini")
|
||||
alembic_cfg = Config("alembic.ini")
|
||||
command.upgrade(alembic_cfg, "head")
|
||||
except Exception as e:
|
||||
print(f"Error: {e}")
|
||||
@ -90,15 +90,6 @@ if os.path.exists(f"{DATA_DIR}/config.json"):
|
||||
save_to_db(data)
|
||||
os.rename(f"{DATA_DIR}/config.json", f"{DATA_DIR}/old_config.json")
|
||||
|
||||
|
||||
def save_config():
|
||||
try:
|
||||
with open(f"{DATA_DIR}/config.json", "w") as f:
|
||||
json.dump(CONFIG_DATA, f, indent="\t")
|
||||
except Exception as e:
|
||||
log.exception(e)
|
||||
|
||||
|
||||
DEFAULT_CONFIG = {
|
||||
"version": 0,
|
||||
"ui": {
|
||||
@ -172,6 +163,25 @@ def get_config_value(config_path: str):
|
||||
return cur_config
|
||||
|
||||
|
||||
PERSISTENT_CONFIG_REGISTRY = []
|
||||
|
||||
|
||||
def save_config(config):
|
||||
global CONFIG_DATA
|
||||
global PERSISTENT_CONFIG_REGISTRY
|
||||
try:
|
||||
save_to_db(config)
|
||||
CONFIG_DATA = config
|
||||
|
||||
# Trigger updates on all registered PersistentConfig entries
|
||||
for config_item in PERSISTENT_CONFIG_REGISTRY:
|
||||
config_item.update()
|
||||
except Exception as e:
|
||||
log.exception(e)
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
T = TypeVar("T")
|
||||
|
||||
|
||||
@ -187,6 +197,8 @@ class PersistentConfig(Generic[T]):
|
||||
else:
|
||||
self.value = env_value
|
||||
|
||||
PERSISTENT_CONFIG_REGISTRY.append(self)
|
||||
|
||||
def __str__(self):
|
||||
return str(self.value)
|
||||
|
||||
@ -203,6 +215,12 @@ class PersistentConfig(Generic[T]):
|
||||
)
|
||||
return super().__getattribute__(item)
|
||||
|
||||
def update(self):
|
||||
new_value = get_config_value(self.config_path)
|
||||
if new_value is not None:
|
||||
self.value = new_value
|
||||
log.info(f"Updated {self.env_name} to new value {self.value}")
|
||||
|
||||
def save(self):
|
||||
log.info(f"Saving '{self.env_name}' to the database")
|
||||
path_parts = self.config_path.split(".")
|
||||
|
Loading…
Reference in New Issue
Block a user