Files
WonderQ-Project/WonderQ-Admin/app/migration_compat.py
duanshuwen 4e04feda5b feat(admin, miniapp): 优化数据库迁移逻辑与小程序图片资源处理
- 为后端Admin新增migration_compat工具,支持离线迁移时的基线资源检查,重构全部alembic迁移脚本适配离线模式,避免重复创建已存在的数据库表和字段
- 完善初始数据库迁移脚本,添加默认部门种子数据,新增ConciergeAdvisor详情字段从JSON到JSONB的类型转换迁移
- 小程序端新增图片资源解析工具resolveNetworkImage,实现本地静态资源到CDN的自动映射,添加图片加载容错降级机制
- 完善HeroSlide类型定义,新增actionLabel字段,优化首页轮播组件的文本渲染与错误处理逻辑
- 新增对应测试用例验证迁移路径正确性与前端数据处理逻辑
- 新增临时 brainstorm UI对比草稿与开发临时状态文件
2026-08-27 11:37:03 +08:00

38 lines
1.2 KiB
Python

"""Helpers for offline generation against the current initial baseline."""
from . import models # noqa: F401
from .database import Base
def baseline_table_names() -> set[str]:
return set(Base.metadata.tables)
def baseline_column_names(table_name: str) -> set[str]:
table = Base.metadata.tables.get(table_name)
return set(table.columns.keys()) if table is not None else set()
def baseline_index_names(table_name: str) -> set[str]:
table = Base.metadata.tables.get(table_name)
return {index.name for index in table.indexes if index.name} if table is not None else set()
def baseline_foreign_keys(table_name: str) -> list[dict]:
table = Base.metadata.tables.get(table_name)
if table is None:
return []
return [
{
"name": foreign_key.name,
"constrained_columns": [foreign_key.parent.name],
"referred_table": foreign_key.column.table.name,
"referred_columns": [foreign_key.column.name],
"options": {
"ondelete": foreign_key.ondelete,
"onupdate": foreign_key.onupdate,
},
}
for foreign_key in table.foreign_keys
]