refac
This commit is contained in:
1 parent
8d25ad00e2
commit
5c05608e3a
2 files changed
+21
-7
No files matched your search
@@ -300,14 +300,16 @@ class Config(Base):
|
||||
)
|
||||
|
||||
@staticmethod
|
||||
async def repair_flattened_dict_configs() -> None:
|
||||
"""Reassemble dict config values flattened by the per-key migration."""
|
||||
async def repair_config_rows() -> None:
|
||||
"""Repair known legacy config row shapes."""
|
||||
if not Config.PERSISTENT_ENABLED:
|
||||
return
|
||||
|
||||
async with get_async_db() as db:
|
||||
repaired_keys: list[str] = []
|
||||
orphan_keys: list[str] = []
|
||||
default_model_keys: list[str] = []
|
||||
now = int(time.time())
|
||||
|
||||
for config_key, aliases in DICT_CONFIG_KEY_ALIASES.items():
|
||||
prefixes = (config_key, *aliases)
|
||||
@@ -355,14 +357,26 @@ class Config(Base):
|
||||
|
||||
if existing:
|
||||
existing.value = repaired
|
||||
existing.updated_at = int(time.time())
|
||||
existing.updated_at = now
|
||||
else:
|
||||
db.add(Config(key=config_key, value=repaired, updated_at=int(time.time())))
|
||||
db.add(Config(key=config_key, value=repaired, updated_at=now))
|
||||
repaired_keys.append(config_key)
|
||||
|
||||
if orphan_keys:
|
||||
await db.execute(delete(Config).where(Config.key.in_(orphan_keys)))
|
||||
|
||||
if repaired_keys or orphan_keys:
|
||||
for key in ('ui.default_models', 'ui.default_pinned_models'):
|
||||
row = await db.get(Config, key)
|
||||
if not row or not isinstance(row.value, list):
|
||||
continue
|
||||
|
||||
row.value = ','.join(model_id for model_id in (str(item).strip() for item in row.value) if model_id)
|
||||
row.updated_at = now
|
||||
default_model_keys.append(key)
|
||||
|
||||
if repaired_keys or orphan_keys or default_model_keys:
|
||||
await db.commit()
|
||||
log.info('Repaired flattened dict config rows for %s', ', '.join(repaired_keys))
|
||||
if repaired_keys or orphan_keys:
|
||||
log.info('Repaired flattened dict config rows for %s', ', '.join(repaired_keys))
|
||||
if default_model_keys:
|
||||
log.info('Repaired default model config rows for %s', ', '.join(default_model_keys))
|
||||
Reference in new issue
Block a user