"""把系统 Logo 的 URL 写入 sys_param 表的 logo_url 参数。 用法(backend 目录下,conda dpb 环境,ENVIRONMENT=dev): python scripts/set_logo_param.py 说明: - public/logo.svg 经 Vite publicDir 在 dev 以 /logo.svg 提供,生产构建也复制到 dist 根以 /logo.svg 提供。 - 系统(FaLogo/侧边栏/顶栏/登录页)读 configStore.configData.logo_url.config_value 作为 ,故只需把该值设为 URL。 """ import os import sys BACKEND_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) if BACKEND_DIR not in sys.path: sys.path.insert(0, BACKEND_DIR) from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from app.api.v1.module_system.params.model import ParamsModel from app.config.setting import settings LOGO_URL = "/web/logo.svg" def main() -> None: engine = create_engine(settings.DB_URI, future=True) Session = sessionmaker(bind=engine, expire_on_commit=False) with Session() as db: existing = ( db.query(ParamsModel).filter(ParamsModel.config_key == "logo_url").first() ) if existing: existing.config_value = LOGO_URL existing.config_name = "Logo" existing.status = 0 existing.config_type = False print(f"updated logo_url -> {existing.config_value}") else: db.add( ParamsModel( config_key="logo_url", config_name="Logo", config_value=LOGO_URL, config_type=False, status=0, description="系统 Logo", ) ) print(f"inserted logo_url -> {LOGO_URL}") db.commit() if __name__ == "__main__": main()